[ https://issues.apache.org/jira/browse/SPARK-10508?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14746515#comment-14746515 ]
Josh Rosen commented on SPARK-10508: ------------------------------------ I managed to reproduce this on 1.3.1 as well, using the following code: {code} val df = Seq( (0, null.asInstanceOf[Double]), (1, -1.0), (2, 0.0), (3, 1.0), (4, 0.1), (5, 10.0) ).toDF("rnum", "cdec").selectExpr("rnum", "cast(cdec as decimal(7, 2)) as cdec") df.registerTempTable("TDEC") sqlContext.sql("select rnum, cdec, case when cdec in ( -1,10,0.1 ) then 'test1' else 'other' end from tdec") {code} I was able to confirm that this is fixed in at least 1.4.1 and 1.5.0, where this gives the following result: {code} 0 0 other 1 -1 test1 2 0 other 3 1 other 4 0.1 test1 5 10 test1 {code} As a result, you should be able to work around this by upgrading to a newer Spark version. Therefore, I'm going to mark this as fixed in 1.4.1 / 1.5.0. > incorrect evaluation of searched case expression > ------------------------------------------------ > > Key: SPARK-10508 > URL: https://issues.apache.org/jira/browse/SPARK-10508 > Project: Spark > Issue Type: Bug > Components: SQL > Affects Versions: 1.3.1 > Reporter: N Campbell > Fix For: 1.4.1, 1.5.0 > > > The following case expression never evaluates to 'test1' when cdec is -1 or > 10 as it will for Hive 0.13. Instead is returns 'other' for all rows. > {code} > select rnum, cdec, case when cdec in ( -1,10,0.1 ) then 'test1' else 'other' > end from tdec > create table if not exists TDEC ( RNUM int , CDEC decimal(7, 2 ) ) > TERMINATED BY '\n' > STORED AS orc ; > 0|\N > 1|-1.00 > 2|0.00 > 3|1.00 > 4|0.10 > 5|10.00 > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org