我正在使用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亿。
在左连接中,我应该永远不会有比左侧表更多的记录。我假设这个连接表现得像交叉连接。 这怎么可能? 谢谢。