【问题标题】:How to drop rows of a pyspark dataframe if they're in another dataframe based on the values from two columns?如果 pyspark 数据帧的行基于两列的值位于另一个数据帧中,如何删除它们?
【发布时间】:2020-07-22 22:38:27
【问题描述】:

我有两个数据框,一个包含用户和项目列,另一个包含所有用户项目对及其分数。 user| itemuser | item | item2 | rating2 | score

我想从第二个表中删除用户和项目出现在第一个数据框中的所有行。我不能使用减法,因为它们的列数不同?

这可以通过反连接来完成吗?

【问题讨论】:

    标签: python sql python-3.x apache-spark pyspark


    【解决方案1】:
    df2.join(df1, on=['user', 'item'], how="left_anti")
    

    【讨论】:

    • 答案看起来不错 +1。如果其中一个 DataFrame 小到可以广播,则应该进行广播连接:big_df.join(broadcast(small_df)...。这样会快很多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2021-08-18
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多