【问题标题】:Most optimal way to removing Duplicates in pySpark在 pySpark 中删除重复项的最佳方法
【发布时间】:2018-09-24 19:25:41
【问题描述】:

我正在尝试通过在几列上使用 dropDuplicates() 来删除 spark 数据帧中的重复项。但是由于涉及到大量的洗牌和数据倾斜,工作正在被搁置。我使用了 5 个内核和 30GB 内存来执行此操作。我正在执行 dropDuplicates() 的数据大约有 1200 万行。

考虑到涉及数据倾斜和改组,请建议我在 spark 中删除重复项的最佳方法。

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql


    【解决方案1】:

    删除重复操作是一项代价高昂的操作,因为它会将一个 RDD 中的值与所有其他 RDD 进行比较并尝试合并结果。考虑数据结果的大小可能会很耗时。

    我建议对数据框的列进行 groupby 转换,然后执行提交操作。这样,只有您的 RDD 的合并结果才会与其他过于懒惰的 RDD 进行比较,然后您可以通过任何操作(如 commit / show 等)请求结果

    transactions.groupBy("col1”,”col2").count.sort($"count".desc).show
    

    【讨论】:

      猜你喜欢
      • 2020-08-03
      • 2017-11-07
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 1970-01-01
      • 2010-09-26
      • 2018-11-01
      相关资源
      最近更新 更多