【发布时间】:2020-06-18 03:09:33
【问题描述】:
我正在使用 spark-sql-2.4.1v,我正在尝试在给定数据的每一列上查找分位数,即百分位数 0、百分位数 25 等。
当我在做多个百分位数时,如何从结果中检索每个计算出的百分位数?
这里是一个例子,数据如下:
+----+---------+-------------+----------+-----------+
| id| date|total_revenue|con_dist_1| con_dist_2|
+----+---------+-------------+----------+-----------+
|3310|1/15/2018| 0.010680705| 6|0.019875458|
|3310|1/15/2018| 0.006628853| 4|0.816039063|
|3310|1/15/2018| 0.01378215| 4|0.082049528|
|3310|1/15/2018| 0.010680705| 6|0.019875458|
|3310|1/15/2018| 0.006628853| 4|0.816039063|
|3310|1/15/2018| 0.01378215| 4|0.082049528|
|3310|1/15/2018| 0.010680705| 6|0.019875458|
|3310|1/15/2018| 0.010680705| 6|0.019875458|
|3310|1/15/2018| 0.014933087| 5|0.034681906|
|3310|1/15/2018| 0.014448282| 3|0.082049528|
+----+---------+-------------+----------+-----------+
我需要在“con_dist_1”、“con_dist_2”等上计算百分位数 0、percentile25 等。
我正在为百分位数 50 执行以下操作:
val col_list = Array("con_dist_1","con_dist_2")
val median_col_list = partitioned_data.stat.approxQuantile(col_list, Array(0.5),0.0)
println(median_col_list)
它给出了这个结果:
median_col_list: Array[Array[Double]] = Array(Array(4.0), Array(0.034681906))
如何映射结果?有什么方法哪个结果属于哪一列?请为上述建议提供更好的建议。
【问题讨论】:
标签: scala apache-spark statistics apache-spark-dataset quantile