Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何计算按其他列分组的列值的频率?_Apache Spark - Fatal编程技术网

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())));
谢谢