LEFT OUTER JOIN在SPARK SQL中表现为CROSS JOIN

时间:2017-06-02 15:44:30

标签: sql apache-spark hive pyspark pyspark-sql

我正在使用Apache Spark 1.6.1,并尝试在两个表之间执行简单的左外连接。其中一个表直接从HDFS文件夹加载,另一个通过直接查询Hive表。 这就是我所做的:

data = sqlContext.read.format("parquet").option("basePath","/path_to_folder").load("path_to_folder/partition_date=20170501

print data.count()

data2 = sqlContext.sql("select * from hive_table")

print data2.count()
join5 = data.join(data2,data["session_id"] == data2["key"],"left_outer")

print join5.count()

前两个计数返回正确的计数(约200万) 但加入后的统计数字大约为20亿。

在左连接中,我应该永远不会有比左侧表更多的记录。我假设这个连接表现得像交叉连接。  这怎么可能?  谢谢。

0 个答案:

没有答案