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 统计spark数据帧中所有列(300列)的每个不同值的出现次数_Apache Spark_Apache Spark Sql - Fatal编程技术网

Apache spark 统计spark数据帧中所有列(300列)的每个不同值的出现次数

Apache spark 统计spark数据帧中所有列(300列)的每个不同值的出现次数,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我有一个spark数据框,有300列,每列有10个不同的值。我需要计算所有300列的不同值的计数 -------------------------------------------------------- col1 | col2 | col3 ............col299 | col 300 ------------------------------------------------------- value11 | value21

我有一个spark数据框,有300列,每列有10个不同的值。我需要计算所有300列的不同值的计数

  --------------------------------------------------------
     col1    |  col2    | col3 ............col299   | col 300
  -------------------------------------------------------
  value11    | value21  | value31       | value300  | value 301
  value12    | value22  | value32       | value300  | value 301
  value11    | value22  | value33       | value301  | value 302
  value12    | value21  | value33       | value301  | value 302
如果是单列,我使用下面的代码计算

import org.apache.spark.sql.functions.count
df.groupBy("col1").agg(count("col1")).show

但是如何有效地计算300列。请帮忙

您可以很容易地按照下面提到的方法进行操作

首先收集所有列名和转换作为键值。 如下

val exprs=df.columns.map((->“近似计数”\u不同”)).toMap

然后simple
df.groupBy(“col1”).agg(exprs)
将为您提供所有列的不同值


参考

您可以按照下面提到的方法轻松完成

首先收集所有列名和转换作为键值。 如下

val exprs=df.columns.map((->“近似计数”\u不同”)).toMap

然后simple
df.groupBy(“col1”).agg(exprs)
将为您提供所有列的不同值


<>强>参考< /强>:

如果你可以用近似的不同计数考虑使用有效的<代码>近似xOntTyx区别的< /代码>如果你可以用近似的不同计数来考虑,考虑使用有效的<代码>大约