[ 
https://issues.apache.org/jira/browse/SPARK-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15019198#comment-15019198
 ] 

Xiao Li commented on SPARK-11894:
---------------------------------

The plan of Dataframe:

== Parsed Logical Plan ==
Join Inner, Some(true)
 Subquery df1
  Project [_1#17 AS key#19,_2#18 AS value#20]
   LocalRelation [_1#17,_2#18], [[null,1],[22,2]]
 Subquery df2
  Project [_1#21 AS key#23,_2#22 AS value#24]
   LocalRelation [_1#21,_2#22], [[null,1],[22,2]]

== Analyzed Logical Plan ==
key: int, value: string, key: int, value: string
Join Inner, Some(true)
 Subquery df1
  Project [_1#17 AS key#19,_2#18 AS value#20]
   LocalRelation [_1#17,_2#18], [[null,1],[22,2]]
 Subquery df2
  Project [_1#21 AS key#23,_2#22 AS value#24]
   LocalRelation [_1#21,_2#22], [[null,1],[22,2]]

== Optimized Logical Plan ==
Join Inner, None
 LocalRelation [key#19,value#20], [[null,1],[22,2]]
 LocalRelation [key#23,value#24], [[null,1],[22,2]]

== Physical Plan ==
BroadcastNestedLoopJoin BuildLeft, Inner, None
 LocalTableScan [key#19,value#20], [[null,1],[22,2]]
 LocalTableScan [key#23,value#24], [[null,1],[22,2]]

> Incorrect results are returned when using null
> ----------------------------------------------
>
>                 Key: SPARK-11894
>                 URL: https://issues.apache.org/jira/browse/SPARK-11894
>             Project: Spark
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 1.6.0
>            Reporter: Xiao Li
>
> In DataSet APIs, the following two datasets are the same. 
>   Seq((new java.lang.Integer(0), "1"), (new java.lang.Integer(22), 
> "2")).toDS()
>   Seq((null.asInstanceOf[java.lang.Integer],, "1"), (new 
> java.lang.Integer(22), "2")).toDS()
> Note: java.lang.Integer is Nullable. 
> It could generate an incorrect result. For example, 
>     val ds1 = Seq((null.asInstanceOf[java.lang.Integer], "1"), (new 
> java.lang.Integer(22), "2")).toDS()
>     val ds2 = Seq((null.asInstanceOf[java.lang.Integer], "1"), (new 
> java.lang.Integer(22), "2")).toDS()//toDF("key", "value").as('df2)
>     val res1 = ds1.joinWith(ds2, lit(true)).collect()
> The expected result should be 
> ((null,1),(null,1))
> ((22,2),(null,1))
> ((null,1),(22,2))
> ((22,2),(22,2))
> The actual result is 
> ((0,1),(0,1))
> ((22,2),(0,1))
> ((0,1),(22,2))
> ((22,2),(22,2))



--
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

Reply via email to