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
如何在Scala SPARK中找到groupBy之后agg()函数中的分位数_Scala_Apache Spark_Group By_Aggregate_Quantile - Fatal编程技术网

如何在Scala SPARK中找到groupBy之后agg()函数中的分位数

如何在Scala SPARK中找到groupBy之后agg()函数中的分位数,scala,apache-spark,group-by,aggregate,quantile,Scala,Apache Spark,Group By,Aggregate,Quantile,我有一个数据框,在其中我想按列a分组,然后找到不同的统计数据,如平均值、最小值、最大值、标准偏差和分位数 我能够使用以下代码找到最小值、最大值和平均值: df.groupBy(“A”).agg(min(“B”)、max(“B”)、mean(“B”)).show(50,false) 但是我找不到分位数(0.25,0.5,0.75)。我尝试了近似分位数和百分位数,但它给出了以下错误: 错误:未找到:值接近分位数如果类路径中有配置单元,则可以使用许多UDAF,如percentile_Abrox和std

我有一个数据框,在其中我想按列a分组,然后找到不同的统计数据,如平均值、最小值、最大值、标准偏差和分位数

我能够使用以下代码找到最小值、最大值和平均值:
df.groupBy(“A”).agg(min(“B”)、max(“B”)、mean(“B”)).show(50,false)

但是我找不到分位数(0.25,0.5,0.75)。我尝试了近似分位数和百分位数,但它给出了以下错误:


错误:未找到:值接近分位数

如果类路径中有配置单元,则可以使用许多UDAF,如percentile_Abrox和stddev_samp,请参阅

您可以使用
callUDF
调用这些函数:

import ss.implicits._
import org.apache.spark.sql.functions.callUDF

val df = Seq(1.0,2.0,3.0).toDF("x")

df.groupBy()
  .agg(
    callUDF("percentile_approx",$"x",lit(0.5)).as("median"),
    callUDF("stddev_samp",$"x").as("stdev")
  )
.show()

我希望您尝试从数据框/数据集中获取一些示例数据。然后spark有
样本(分数:双)
API存在。请试一下那个可能的副本