gpt4 book ai didi

sql - PySpark - 如何使用连接更新 Dataframe?

转载 作者:行者123 更新时间:2023-12-05 02:59:01 24 4
gpt4 key购买 nike

我有一个数据框:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com