我在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'函数吗?
答案 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以找出percentile
和percentile_approx
之间的差异。