pyspark内部连接产生太多行?

zphenhs4  于 2021-05-16  发布在  Spark
关注(0)|答案(1)|浏览(413)

我用的是jupyter笔记本中的pyspark。我尝试用两个数据集进行内部连接:一个有2455行,另一个超过100万行。为什么内部连接会产生这么多行?它应该有少于2455行,当然?有人能给我一些建议吗?

print(df.count(),len(df.columns))
19725379 90

print(df1.count(),len(df1.columns))
2455 37

df3 = df.join(df1,"ADDRESS1", "inner")
df3.dropDuplicates(subset=['ADDRESS1']).count
print(df3.count(),len(df3.columns))
603050 126

df3 = df.join(df1,"ADDRESS1", "inner")
print(df3.count(),len(df3.columns))
603050 126
vohkndzv

vohkndzv1#

不,没必要,举个例子
df 1=

+------+------+
| t1   | t2   |
+------+------+
|    1 | A    |
|    2 | B    |
+------+------+

df2=

+------+------+
| t1   | t3   |
+------+------+
|    1 | A2   |
|    2 | B2   |
|    3 | C2   |
|    1 | D2   |
|    2 | E2   |
+------+------+

用你的话来说,键“t1”的内部连接长度必须不超过2,但不能:
关于第一列的内部连接将是:

+------+------+------+
| t1   | t2   | t3   |
+------+------+------+
|    1 | A    | A2   |
|    1 | A    | D2   |
|    2 | B    | B2   |
|    2 | B    | E2   |
+------+------+------+

相关问题