groupBy的Java Spark替代方案



我有一个包含column1和column2的数据集。我想分配新的列值";x〃;如果";列1";值在数据集中出现多次。我可以使用group-by来实现这一点。

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

但这种方法逐个数据集创建一个组,然后我必须在逐个数据集的组和原始数据集之间进行连接,以找到计数并将新值分配为"0";X〃;如果count大于1。是否可以在不创建新数据集的情况下实现相同的结果?

您可以使用窗口函数添加一列计数:

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

最新更新