【发布时间】:2019-03-03 15:33:20
【问题描述】:
我有 2 个数据框,如下所示。
目标是从 df2 中找到一个新行,其中数据框 1 中不存在相同的列值。
我尝试以 id 作为连接条件来连接两个数据框,并检查了其他列值不相等,如下所示。
但它不起作用。
有人可以帮忙吗?
df1:这个数据框就像一个主表
id amt city date
abc 100 City1 9/26/2018
abc 100 City1 9/25/2018
def 200 City2 9/26/2018
ghi 300 City3 9/26/2018
df2:Dataframe 2 是新的数据集,每天都会出现。
id amt city date
abc 100 City1 9/27/2018
def null City2 9/26/2018
ghi 300 City3 9/26/2018
结果:得出如下结果数据框:
id amt city date
abc 100 City1 9/27/2018
def null City2 9/26/2018
我试过的代码:
val writeDF = df1.join(df2, df1.col("id") === df2.col("id")).
where(df1.col("amt") =!= df2.col("amt")).where(df1.col("city") =!=
df2.col("city")).where(df1.col("date") =!= df2.col("date")).select($"df2.*")
【问题讨论】:
标签: scala apache-spark dataframe join