【问题标题】:save dropped duplicates in pyspark RDD在 pyspark RDD 中保存删除的重复项
【发布时间】:2020-01-18 21:16:10
【问题描述】:

从这里Removing duplicates from rows based on specific columns in an RDD/Spark DataFrame,我们学习了如何根据一些特定变量删除重复的观察结果。如果我想以 RDD 的形式保存那些重复的观察结果,我该怎么办?如果 RDD 包含数十亿个观察值,我猜rdd.substract() 可能效率不高。那么除了使用rdd.substract()之外,还有其他方法可以使用吗?

【问题讨论】:

标签: pyspark rdd


【解决方案1】:

如果您需要两个数据集,一个只有不同的值,另一个有重复值,您应该使用减法。这将提供准确的结果。如果您只需要重复项,则可以使用 sql 来获取它。

df.createOrReplaceTempView('mydf')
df2 = spark.sql("select *,row_number() over(partition by <<list of columns used to identify duplicates>> order by <<any column/s not used to identify duplicates>>) as row_num from mydf having row_num>1").drop('row_num')

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    相关资源
    最近更新 更多