Java groupBy 的 Spark 替代方案

Java Spark alternative for groupBy

我有一个包含 column1 和 column2 的数据集。如果“column1”值在数据集中出现不止一次,我想为记录分配新的列值“x”。我可以使用 group by 来实现这一点。

dataset.groupBy("column1").count()

但是此方法按数据集创建了一个分组,然后我必须在按数据集分组和原始数据集之间进行连接以查找计数并在计数大于 1 时将新值分配为“X”。是吗?可以在不创建新数据集的情况下获得相同的结果吗?

您可以使用 window 函数添加计数列:

dataset.withColumn("count_column2", count("column2").over(Window.partitionBy("column1")))