【问题标题】:dropDuplicates in SparkRSparkR 中的删除重复项
【发布时间】:2026-02-24 02:10:01
【问题描述】:

SparkR 是否包含 scala 中存在的 dropDuplicates 函数(根据特定列删除重复行)?

我在 SOF 中遇到了这个answer。但是我们没有使用 GroupBy,而是在 SparkR 中有一个 dropDuplicates 的函数吗?

【问题讨论】:

    标签: apache-spark sparkr


    【解决方案1】:

    要按所有列执行,它是distinct

    distinct(x)
    

    unique(x)
    

    如您所说,要“基于特定列”执行此操作,最好的选择是 GroupBy,因为 spark 无法决定要保留哪一个“不明确”记录。

    【讨论】:

    • 但这不支持我们指定列来识别重复
    • 似乎没有其他功能可以做到这一点。如果您知道其中之一,请更新答案
    • 我认为 groupBy 是一个。请注意,您必须为每列提供一个聚合函数。您可以定义自己的,也可以使用 max 等内置函数。例如df.groupBy("key_col").agg(max("col1"), max("col2"))