gpt4 book ai didi

apache-spark - 基于其他数据帧中的列 Spark 重复数据帧中的列

转载 作者:行者123 更新时间:2023-12-05 00:18:39 27 4
gpt4 key购买 nike

我正在尝试根据另一个数据帧列中的值对 Spark 数据帧列中的值进行重复数据删除。看来withColumn()仅适用于单个数据帧,并且子查询在版本 2 之前不会完全可用。我想我可以尝试加入表,但这似乎有点困惑。这是一般的想法:

df.take(1)
[Row(TIMESTAMP='20160531 23:03:33', CLIENT ID=233347, ROI NAME='my_roi', ROI VALUE=1, UNIQUE_ID='173888')]

df_re.take(1)
[Row(UNIQUE_ID='6866144:ST64PSIMT5MB:1')]

基本上只想从 df 取值并删除在 df_re 中找到的任何内容然后返回整个数据帧,并删除包含这些重复项的行。我确定我可以迭代每一个,但我想知道是否有更好的方法。
有任何想法吗?

最佳答案

这样做的方法是做一个 left_outer join ,然后过滤联接右侧为空的位置。就像是:

val df1 = Seq((1,2),(2,123),(3,101)).toDF("uniq_id", "payload")
val df2 = Seq((2,432)).toDF("uniq_id", "other_data")

df1.as("df1").join(
df2.as("df2"),
col("df1.uniq_id") === col("df2.uniq_id"),
"left_outer"
).filter($"df2.uniq_id".isNull)

关于apache-spark - 基于其他数据帧中的列 Spark 重复数据帧中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37663828/

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