为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过pyspark中的列将行添加到另一个数据框中的数据框

如何通过pyspark中的列将行添加到另一个数据框中的数据框

隔江千里 2022-12-20 15:06:17
我有 2 个 dfs,我想将第二个 df 中的行获取到第一个 df。但我只想在 cid 列中的值不在第一个列中时添加这些行。df1x  y  z  cid4  8  1  17  5  6  27  3  5  3df2x  y  z  cid8  4  5  11  2  9  28  6  4  34  5  4  4result:x  y  z  cid4  8  1  17  5  6  27  3  5  34  5  4  4
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

你可以试试下面的代码。


from pyspark.sql.functions import *

# Create DataFrame df1

df1 = spark.createDataFrame([(4,8,1,1), (7,5,6,2), (7,3,5,3)], ["x", "y", "z", "cid"])


# Create DataFrame df2

df2 = spark.createDataFrame([(8,4,5,1), (1,2,9,2), (8,6,4,3), (4,5,4,4)], ["x", "y", "z", "cid"])


# Get the values from cid column from df1

col1 = df1.select(collect_set("cid")).collect()[0][0]


# Filter the dataframe df2 where cid values present in df2 but not in df1.

df3 = df2.filter(~df2["cid"].isin(col1))


# Union df1 and df3.

df4 = df1.union(df3)

df4.show()

// 输出


+---+---+---+---+

|  x|  y|  z|cid|

+---+---+---+---+

|  4|  8|  1|  1|

|  7|  5|  6|  2|

|  7|  3|  5|  3|

|  4|  5|  4|  4|

+---+---+---+---+

我希望这有帮助。


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信