你很接近。
假设您有以下 dfs:
d = [
("a", 5.2),
("b", 10.4),
("c", 7.8),
("d", 11.2),
]
df1 = spark.createDataFrame(d, ['concern_code','value'])
df2 = spark.createDataFrame(d, ['concern_code','value1'])
df3 = spark.createDataFrame(d, ['concern_code','value2'])
df4 = spark.createDataFrame(d, ['concern_code','value3'])
df5 = spark.createDataFrame(d, ['concern_code','value4'])
df1.show()
# output
+------------+-----+
|concern_code|value|
+------------+-----+
| a| 5.2|
| b| 10.4|
| c| 7.8|
| d| 11.2|
+------------+-----+
(
df1
.join(df2,on="concern_code", how="outer")
.join(df3,on="concern_code", how="outer")
.join(df4,on="concern_code", how="outer")
.join(df5,on="concern_code", how="outer")
.show()
)
# output
+------------+-----+------+------+------+------+
|concern_code|value|value1|value2|value3|value4|
+------------+-----+------+------+------+------+
| c| 7.8| 7.8| 7.8| 7.8| 7.8|
| d| 11.2| 11.2| 11.2| 11.2| 11.2|
| a| 5.2| 5.2| 5.2| 5.2| 5.2|
| b| 10.4| 10.4| 10.4| 10.4| 10.4|
+------------+-----+------+------+------+------+