假设我有两个数据框, df1 和 df2 。 df1 和 df2 都包含“id”列。我想过滤 df1 ,以便生成的df, df1prime 具有
不使用任何联接。我怎样才能做到这一点?回到RDD而不是DF会有帮助吗? pyspark和scala的回应都受到欢迎。
谢谢!
编辑:我想保留df1
中的所有行答案 0 :(得分:0)
如果您真的只想要df1prime
中的ID(正如您在问题中所述),那么您可以简单地执行(scala):
val df1primeIDs = df1.select($"id").except(df2.select($"id"))
如果您需要df1
的所有列,没有加入,我就看不到任何其他选项(我的上面的行并假设id
类型为long):
val df1prime = df1.where($"id".isin(
df1primeIDs.collect().map(_.getLong(0)):_*)
)
但通常收藏不是一种选择......