Hi, thank you all for the asssistance.

It is odd, it works when creating a new java.mathBigDecimal object, but not if 
I work directly with

scala> 5 match { case x: java.math.BigDecimal => 2 }
<console>:23: error: scrutinee is incompatible with pattern type;
found   : java.math.BigDecimal
required: Int
              5 match { case x: java.math.BigDecimal => 2 }

I will try and see how it works for my Seq[Any] and see. Thanks for the work 
arounds.
Saif

From: Sujit Pal [mailto:sujitatgt...@gmail.com]
Sent: Tuesday, August 18, 2015 6:25 PM
To: Ellafi, Saif A.
Cc: wrbri...@gmail.com; user
Subject: Re: Scala: How to match a java object????

Hi Saif,

Would this work?

import scala.collection.JavaConversions._

new java.math.BigDecimal(5) match { case x: java.math.BigDecimal => 
x.doubleValue }

It gives me on the scala console.

res9: Double = 5.0

Assuming you had a stream of BigDecimals, you could just call map on it.

myBigDecimals.map(_.doubleValue)

to get your Seq of Doubles. You will need the JavaConversions._ import to allow 
Java Doubles to be treated by Scala as Scala Doubles.

-sujit

On Tue, Aug 18, 2015 at 12:59 PM, 
<saif.a.ell...@wellsfargo.com<mailto:saif.a.ell...@wellsfargo.com>> wrote:
Hi, thank you for further assistance

you can reproduce this by simply running

5 match { case java.math.BigDecimal => 2 }

In my personal case, I am applying a map acton to a Seq[Any], so the elements 
inside are of type any, to which I need to apply a proper 
.asInstanceOf[WhoYouShouldBe].

Saif

From: William Briggs [mailto:wrbri...@gmail.com<mailto:wrbri...@gmail.com>]
Sent: Tuesday, August 18, 2015 4:46 PM
To: Ellafi, Saif A.; user@spark.apache.org<mailto:user@spark.apache.org>
Subject: Re: Scala: How to match a java object????


Could you share your pattern matching expression that is failing?

On Tue, Aug 18, 2015, 3:38 PM  
<saif.a.ell...@wellsfargo.com<mailto:saif.a.ell...@wellsfargo.com>> wrote:
Hi all,

I am trying to run a spark job, in which I receive java.math.BigDecimal 
objects, instead of the scala equivalents, and I am trying to convert them into 
Doubles.
If I try to match-case this object class, I get: “error: object 
java.math.BigDecimal is not a value”

How could I get around matching java objects? I would like to avoid a multiple 
try-catch on ClassCastExceptions for all my checks.

Thank you,
Saif


Reply via email to