如果 pyspark 数据帧的行基于两列的值位于另一个数据帧中,如何删除它们?
Posted
技术标签:
【中文标题】如果 pyspark 数据帧的行基于两列的值位于另一个数据帧中,如何删除它们?【英文标题】:How to drop rows of a pyspark dataframe if they're in another dataframe based on the values from two columns? 【发布时间】:2020-07-22 22:38:27 【问题描述】:我有两个数据框,一个包含用户和项目列,另一个包含所有用户项目对及其分数。
user| item
和 user | item | item2 | rating2 | score
我想从第二个表中删除用户和项目出现在第一个数据框中的所有行。我不能使用减法,因为它们的列数不同?
这可以通过反连接来完成吗?
【问题讨论】:
【参考方案1】:df2.join(df1, on=['user', 'item'], how="left_anti")
【讨论】:
答案看起来不错 +1。如果其中一个 DataFrame 小到可以广播,则应该进行广播连接:big_df.join(broadcast(small_df)...
。这样会快很多。以上是关于如果 pyspark 数据帧的行基于两列的值位于另一个数据帧中,如何删除它们?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何组合来自相同 data_type 的数据帧的两列的值并获取每个元素的计数?
PYSPARK:如何在 pyspark 数据框中找到两列的余弦相似度?