spark中的百分位数 - 最有效的方法(RDD vs SqlContext)

时间:2018-03-09 10:51:20

标签: apache-spark pyspark pyspark-sql

我在spark中有一个大的分组数据集,我需要将百分位数从0.01返回到0.99。

我一直在使用在线资源来确定从RDD操作中执行此操作的不同方法: How to compute percentiles in Apache Spark

到SQLContext功能: Calculate quantile on grouped data in spark Dataframe 我的问题是,是否有人对最有效的方法有什么看法?

另外作为奖励,在SQLContext中有百分位数和百分位数的函数。 “百分位数”在线可用的文档不多,这只是一个非近似的'percentile_approx'函数吗?

1 个答案:

答案 0 :(得分:0)

一般来说,数据帧效率会更高。阅读本文有关原因的详细信息 - https://databricks.com/blog/2016/07/14/a-tale-of-three-apache-spark-apis-rdds-dataframes-and-datasets.html

还有一些基准测试。例如,this one声称“新的DataFrame API比简单的分组和聚合的RDD API更快”。

您可以查找Hive documentation以找出percentilepercentile_approx之间的差异。