火花全外连接问题

时间:2016-11-23 08:26:59

标签: apache-spark apache-spark-sql

我的主要用例是执行从SAS到Spark-scala的代码迁移。这可能是一个错误或可能是我可能做错了什么,但是在使用Full outer join时,或者甚至使用A left outer join B union all B右外连接A和排除连接(其中a.col1为空)组合,(作为完全外连接条件的替代)在我的代码中,它在每种情况下返回不同的行数。输入数据集在SAS和Spark中具有相同的行数,并且输出总是具有比SAS对应的行更多的行。

这是我的示例代码,例如:

data1.registerTempTable("tblA")
data2.registerTempTable("tblB")

val query = """SELECT A.*,B.* FROM tblA A FULL OUTER JOIN  tblB  B
ON UCASE(trim(A.col1))=UCASE(trim(B.col1)) AND trim(A.col2)=trim(B.col2) AND
a.col3=LPAD(B.col3,6,'0') """

val result = sqlContext.sql(query)

result.count

其他信息:我甚至尝试过使用

Step1)左外连接B联合所有A右外连接B,然后 步骤2)在结果数据帧上使用.dropDuplicates(),

步骤1在多次迭代中给出相同的结果,而步骤1和2的组合再次给出不同的结果。

有人有什么想法吗?

0 个答案:

没有答案
相关问题