Apache spark 如何计算按其他列分组的列值的频率?
对于某些列值,我想计算其他目标列值的频率Apache spark 如何计算按其他列分组的列值的频率?,apache-spark,Apache Spark,对于某些列值,我想计算其他目标列值的频率Attr。基本上,我计算一组行中某些列的频率。为此,我按第一列值分组,然后尝试在目标列值上进行聚合,实际上在JAVA中,我是这样做的: Dataset<Row> groupedRows = dF.withColumn("AttFreq", count(Attr).over(Window.partitionBy(groupByAttributes.toArray(new Column[groupByAttributes.si
Attr
。基本上,我计算一组行中某些列的频率。为此,我按第一列值分组,然后尝试在目标列值上进行聚合,实际上在JAVA中,我是这样做的:
Dataset<Row> groupedRows = dF.withColumn("AttFreq", count(Attr).over(Window.partitionBy(groupByAttributes.toArray(new Column[groupByAttributes.size()]))));
Dataset groupedRows=dF.withColumn(“AttFreq”,count(Attr).over(Window.partitionBy(groupByAttributes.toArray)(新列[groupByAttributes.size()));
与使用count(Attr)
计算Attr
的值不同,我想计算Attr
的不同值。
我尝试了…distinctCount(Attr)。超过了…
,但不起作用。
任何人都知道如何实现这一点吗?我使用
近似值\u count\u distinct
解决它,如下所示:
Dataset<Row> groupedRows = dF.withColumn("AttFreq", approx_count_distinct (Attr).over(Window.partitionBy(groupByAttributes.toArray(new Column[groupByAttributes.size()]))));
Dataset groupedRows=dF.withColumn(“AttFreq”,近似计数(Attr).over(Window.partitionBy(groupByAttributes.toArray)(新列[groupByAttributes.size())));
谢谢