相关疑难解决方法(0)

如何使用Apache Spark计算精确中位数?

页面包含一些统计函数(均值,stdev,方差等),但不包含中位数.如何计算准确的中位数?

谢谢

hadoop scala bigdata apache-spark

15
推荐指数
2
解决办法
1万
查看次数

如何在 Spark 中找到分组数据的精确中位数

我需要使用 Scala 计算 Spark 中 Double 数据类型的分组数据集的精确中位数。

它与类似查询不同:在 Spark SQL 中查找多个双数据类型列的中位数。这个问题是关于分组数据的查找数据,而另一个问题是关于在 RDD 级别上查找中位数。

这是我的示例数据

scala> sqlContext.sql("select * from test").show()

+---+---+
| id|num|
+---+---+
|  A|0.0|
|  A|1.0|
|  A|1.0|
|  A|1.0|
|  A|0.0|
|  A|1.0|
|  B|0.0|
|  B|1.0|
|  B|1.0|
+---+---+
Run Code Online (Sandbox Code Playgroud)

预期答案:

+--------+
| Median |
+--------+
|   1    |
|   1    |
+--------+
Run Code Online (Sandbox Code Playgroud)

我尝试了以下选项,但没有运气:

1)Hive函数百分位数,仅适用于BigInt。

2) Hive 函数percentile_approx,但它没有按预期工作(返回 0.25 vs 1)。

scala> sqlContext.sql("select percentile_approx(num, 0.5) from test group by id").show()

+----+
| _c0|
+----+ …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

3
推荐指数
1
解决办法
2万
查看次数

如何使用Python Dataframe API在Apache Spark中找到中位数?

Pyspark API提供除中位数之外的许多聚合函数.Spark 2带有approxQuantile,它给出近似的分位数,但精确的中位数计算起来非常昂贵.是否有更多Pyspark计算Spark Dataframe中一列值的中位数的方法?

python median apache-spark pyspark

1
推荐指数
1
解决办法
6664
查看次数