You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Rishabh Bhardwaj (JIRA)" <ji...@apache.org> on 2015/09/10 12:46:47 UTC

[jira] [Created] (SPARK-10533) DataFrame filter is not handling float/double with Scientific Notation 'e' / 'E'

Rishabh Bhardwaj created SPARK-10533:
----------------------------------------

             Summary: DataFrame filter is not handling float/double with Scientific Notation 'e' / 'E'  
                 Key: SPARK-10533
                 URL: https://issues.apache.org/jira/browse/SPARK-10533
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 1.4.1
         Environment: MAC OS X
            Reporter: Rishabh Bhardwaj
            Priority: Minor


In DataFrames filter operation,when giving float comparison with e (2.0e2) it is not converting the comparison constant as expected (200.0 in this case).
For example:
 val df = sqlContext.createDataFrame(Seq(("a",1.0),("b",2.0),("c",3.0)))

df.filter("_2 < 2.0e1").show
+--+---+
|_1| _2|
+--+---+
| a|1.0|
+--+---+ 

It should return all the three records from the dataframe,but is return record which is less than 2.0.
It seems it is just comparing with the mantissa/coefficient.

On the other hand,sqlContext is handling the above case and giving the desired output.
df.resgisterTempTable("df")
sqlContext.sql("select * from df where `_2` < 2.0e1").show
+--+---+
|_1| _2|
+--+---+
| a|1.0|
| b|2.0|
| c|3.0|
+--+---+ 




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org