如何对火花进行分位数离散化?
Posted
技术标签:
【中文标题】如何对火花进行分位数离散化?【英文标题】:how to quantile-discretize on spark? 【发布时间】:2017-09-14 14:16:48 【问题描述】:我想在没有 Spark.ML 的情况下将 RDD[Float] 分位数离散化为 10 个,所以我需要计算 10th-Percentile, 20th-Percentile...80th-Percentile,90th-Percentile
数据集很大,无法收集到本地!
有什么有效的算法来解决这个问题?
【问题讨论】:
【参考方案1】:如果您使用的是 Spark 版本 > 2.0,则已提供此功能。您必须将您的 RDD[Float] 转换为数据框。使用来自DataFrameStatFunctions
的approxQuantile(String col, double[] probabilities, double relativeError)
。
从文档中说:
此方法实现了 Greenwald-Khanna 算法的变体 (有一些速度优化)。该算法最早出现在 Greenwald 的分位数摘要的节省空间的在线计算 和卡纳
【讨论】:
以上是关于如何对火花进行分位数离散化?的主要内容,如果未能解决你的问题,请参考以下文章