簡體   English   中英

PySpark 內連接產生太多行?

[英]PySpark Inner Join producing too many rows?

我在 Jupyter Notebook 中使用 PySpark。 我正在嘗試使用 2 個數據集進行內部連接:一個有 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

不,這不是必須的,舉這個例子

df 1 =

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

df 2 =

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM