Apache spark 如何使用spark dataframe api使用groupBy计算分位数?

Apache spark 如何使用spark dataframe api使用groupBy计算分位数?,apache-spark,spark-dataframe,aggregate-functions,Apache Spark,Spark Dataframe,Aggregate Functions,我有一些数据如下: id country salary 1 US 2000 2 US 3500 3 US 2600 4 JPN 2500 5 JPN 3800 6 CHN 2400 7 CHN 3200 我想按“国家”分组,然后计算工资的75,95,99分位数 我怎么办? 是否有类似计算平均值、总和的方法 df.groupBy("country").agg(sum($"sa

我有一些数据如下:

id  country  salary
1     US      2000
2     US      3500
3     US      2600
4     JPN     2500
5     JPN     3800
6     CHN     2400
7     CHN     3200
我想按“国家”分组,然后计算工资的75,95,99分位数 我怎么办? 是否有类似计算平均值、总和的方法

df.groupBy("country").agg(sum($"salary"))
and 
df.groupBy("country").agg(quantileFunction)

这是我为烛台图/框须图计算分位数所做的一些工作,这是一个百分位函数。在您的情况下,这可能会起作用:

df.registerTempTable("table1")
df2 = sqlContext.sql("Select id, 
                             country, 
                             percentile(salary, 75) as 75quant,
                             percentile(salary, 95) as 95quant,
                             percentile(salary, 99) as 99quant
                     from table1
                     group by country")

这是我为烛台图/框须图计算分位数所做的一些工作,这是一个百分位函数。在您的情况下,这可能会起作用:

df.registerTempTable("table1")
df2 = sqlContext.sql("Select id, 
                             country, 
                             percentile(salary, 75) as 75quant,
                             percentile(salary, 95) as 95quant,
                             percentile(salary, 99) as 99quant
                     from table1
                     group by country")

我可以在数据帧api中使用百分位,如df.groupBy(“国家”).agg(百分位)?我可以在数据帧api中使用百分位,如df.groupBy(“国家”).agg(百分位)?