Pyspark:如何在多列上连接两个数据帧?
我有两个Pyspark:如何在多列上连接两个数据帧?,pyspark,pyspark-dataframes,Pyspark,Pyspark Dataframes,我有两个pysparkdataframesdf1和df2 df1 id1 id2 id3 x y 0 1 2 0.5 0.4 2 1 0 0.3 0.2 3 0 2 0.8 0.9 2 1 3 0.2 0.1 df2 id name 0 A
pyspark
dataframesdf1
和df2
df1
id1 id2 id3 x y
0 1 2 0.5 0.4
2 1 0 0.3 0.2
3 0 2 0.8 0.9
2 1 3 0.2 0.1
df2
id name
0 A
1 B
2 C
3 D
我想加入两个数据帧并
df3
id1 id2 id3 n1 n2 n3 x y
0 1 2 A B C 0.5 0.4
2 1 0 C B A 0.3 0.2
3 0 2 D A C 0.8 0.9
2 1 3 C B D 0.2 0.1
这是多重连接
df1.join(df2, df1['id1'] == df2['id'], 'left').drop('id').withColumnRenamed('name', 'n1') \
.join(df2, df1['id2'] == df2['id'], 'left').drop('id').withColumnRenamed('name', 'n2') \
.join(df2, df1['id3'] == df2['id'], 'left').drop('id').withColumnRenamed('name', 'n3') \
.show()
+---+---+---+---+---+---+---+---+
|id1|id2|id3| x| y| n1| n2| n3|
+---+---+---+---+---+---+---+---+
| 0| 1| 2|0.5|0.4| A| B| C|
| 2| 1| 0|0.3|0.2| C| B| A|
| 3| 0| 2|0.8|0.9| D| A| C|
| 2| 1| 3|0.2|0.1| C| B| D|
+---+---+---+---+---+---+---+---+
多次加入。如果您想保留
df1
中的其他列(请参阅修订版),该怎么办?我没有任何更改,但结果已更新。您应该调试并提供信息,而不仅仅是说有错误。