【发布时间】:2021-05-27 14:36:44
【问题描述】:
我尝试过搜索,但虽然我遇到了类似的情况,但我没有找到我要找的东西。
我有以下两个数据框:
+---------------------------+
| ID| Value| type |
+---------------------------+
| user0| 100 | Car |
| user1| 102 | Car |
| user2| 109 | Dog |
| user3| 103 | NA |
| user4| 110 | Dog |
| user5| null | null |
| user6| null | null |
| user7| null | null |
+---------------------------+
+---------------------------+
| ID2| Value2| type2|
+---------------------------+
| user5| 115 | Cell |
| user6| 103 | Cell |
| user7| 100 | Fridge|
+---------------------------+
我想加入这两个,结果如下:
+---------------------------+
| ID| Value| type |
+---------------------------+
| user0| 100 | Car |
| user1| 102 | Car |
| user2| 109 | Dog |
| user3| 103 | NA |
| user4| 110 | Dog |
| user5| 115 | Cell |
| user6| 103 | Cell |
| user7| 100 | Fridge |
+---------------------------+
我尝试了以下方法,但没有返回预期的结果:
df_joined= df1.join(df2,(df1.id==df2.id2) &
(df1.value==df2.value2) &
(df1.type==df2.type2),
"left").drop('id2','value2','type2')
我只从第一个 df 获取值,可能 left 不是正确的连接类型,但我不明白应该使用什么。
【问题讨论】:
标签: sql dataframe apache-spark pyspark apache-spark-sql