如何在Scala SPARK中找到groupBy之后agg()函数中的分位数
我有一个数据框,在其中我想按列a分组,然后找到不同的统计数据,如平均值、最小值、最大值、标准偏差和分位数 我能够使用以下代码找到最小值、最大值和平均值:如何在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
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存在。请试一下那个可能的副本