我有一个数据框:
id,value
1,11
2,22
3,33
还有另一个数据框b:
id,value
1,123
3,345
我想用 b 中的所有匹配值更新数据框 a(基于“id”列)。
最终数据框“c”将是:
id,value
1,123
2,22
3,345
如何使用数据名连接(或其他方法)实现这一目标?
尝试过:
a.join(b, a.id == b.id, "inner").drop(a.value)
给出(不需要的输出):
+---+---+-----+
| id| id|value|
+---+---+-----+
| 1| 1| 123|
| 3| 3| 345|
+---+---+-----+
谢谢。
最佳答案
我认为没有更新功能。但这应该有效:
import pyspark.sql.functions as F
df1.join(df2, df1.id == df2.id, "left_outer") \
.select(df1.id, df2.id, F.when(df2.value.isNull(), df1.value).otherwise(df2.value).alias("value")))
关于sql - PySpark - 如何使用连接更新 Dataframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58377576/