RE: Scala: How to match a java object????

2015-08-19 Thread Saif.A.Ellafi
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.commailto: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.commailto:wrbri...@gmail.com]
Sent: Tuesday, August 18, 2015 4:46 PM
To: Ellafi, Saif A.; user@spark.apache.orgmailto: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.commailto: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




RE: Scala: How to match a java object????

2015-08-19 Thread Saif.A.Ellafi
It is okay. this methodology works very well for mapping objects of my Seq[Any].

It is indeed very cool :-)

Saif

From: Ted Yu [mailto:yuzhih...@gmail.com]
Sent: Wednesday, August 19, 2015 10:47 AM
To: Ellafi, Saif A.
Cc: sujitatgt...@gmail.com; wrbri...@gmail.com; user@spark.apache.org
Subject: Re: Scala: How to match a java object

Saif:
In your example below, the error was due to there is no automatic conversion 
from Int to BigDecimal.

Cheers


On Aug 19, 2015, at 6:40 AM, 
saif.a.ell...@wellsfargo.commailto:saif.a.ell...@wellsfargo.com 
saif.a.ell...@wellsfargo.commailto:saif.a.ell...@wellsfargo.com wrote:
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.commailto: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.commailto: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.commailto:wrbri...@gmail.com]
Sent: Tuesday, August 18, 2015 4:46 PM
To: Ellafi, Saif A.; user@spark.apache.orgmailto: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.commailto: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




Re: Scala: How to match a java object????

2015-08-19 Thread Ted Yu
Saif:
In your example below, the error was due to there is no automatic conversion 
from Int to BigDecimal. 

Cheers



 On Aug 19, 2015, at 6:40 AM, saif.a.ell...@wellsfargo.com 
 saif.a.ell...@wellsfargo.com wrote:
 
 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 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] 
 Sent: Tuesday, August 18, 2015 4:46 PM
 To: Ellafi, Saif A.; 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 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
  
  


RE: Scala: How to match a java object????

2015-08-18 Thread Saif.A.Ellafi
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]
Sent: Tuesday, August 18, 2015 4:46 PM
To: Ellafi, Saif A.; 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.commailto: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



Re: Scala: How to match a java object????

2015-08-18 Thread Marcelo Vanzin
On Tue, Aug 18, 2015 at 12:59 PM, saif.a.ell...@wellsfargo.com wrote:

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

5 match { case _: java.math.BigDecimal = 2 }

-- 
Marcelo

-
To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
For additional commands, e-mail: user-h...@spark.apache.org



Re: Scala: How to match a java object????

2015-08-18 Thread Marcelo Vanzin
On Tue, Aug 18, 2015 at 1:19 PM,  saif.a.ell...@wellsfargo.com wrote:
 Hi, Can you please elaborate? I am confused :-)

You did note that the two pieces of code are different, right?

See http://docs.scala-lang.org/tutorials/tour/pattern-matching.html
for how to match things in Scala, especially the typed pattern
example.

 -Original Message-
 From: Marcelo Vanzin [mailto:van...@cloudera.com]
 Sent: Tuesday, August 18, 2015 5:15 PM
 To: Ellafi, Saif A.
 Cc: wrbri...@gmail.com; user@spark.apache.org
 Subject: Re: Scala: How to match a java object

 On Tue, Aug 18, 2015 at 12:59 PM, saif.a.ell...@wellsfargo.com wrote:

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

 5 match { case _: java.math.BigDecimal = 2 }

 --
 Marcelo



-- 
Marcelo

-
To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
For additional commands, e-mail: user-h...@spark.apache.org



Re: Scala: How to match a java object????

2015-08-18 Thread William Briggs
Could you share your pattern matching expression that is failing?

On Tue, Aug 18, 2015, 3:38 PM  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




RE: Scala: How to match a java object????

2015-08-18 Thread Saif.A.Ellafi
Hi, Can you please elaborate? I am confused :-)

Saif

-Original Message-
From: Marcelo Vanzin [mailto:van...@cloudera.com] 
Sent: Tuesday, August 18, 2015 5:15 PM
To: Ellafi, Saif A.
Cc: wrbri...@gmail.com; user@spark.apache.org
Subject: Re: Scala: How to match a java object

On Tue, Aug 18, 2015 at 12:59 PM, saif.a.ell...@wellsfargo.com wrote:

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

5 match { case _: java.math.BigDecimal = 2 }

-- 
Marcelo


Re: Scala: How to match a java object????

2015-08-18 Thread Sujit Pal
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 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]
 *Sent:* Tuesday, August 18, 2015 4:46 PM
 *To:* Ellafi, Saif A.; 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 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