pat*_*ker 4 dataframe apache-spark apache-spark-sql
我正在尝试根据另一个数据帧列中的值对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')]
Run Code Online (Sandbox Code Playgroud)
基本上只是想从中获取值df并删除任何找到的值df_re,然后返回整个数据帧,并删除包含这些重复项的行.我相信我可以迭代每一个,但我想知道是否有更好的方法.有任何想法吗?
执行此操作的方法是执行a 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
429 次 |
| 最近记录: |