如何对火花进行分位 - 离散化?

时间:2017-09-14 14:16:49

标签: apache-spark machine-learning feature-engineering bigdata

我想在不使用Spark.ML的情况下将RDD [Float]分离离散为10件,所以我需要计算10-Percentile,20th-Percentile ... 80th-Percentile,90-Percentile

数据集非常大,无法收集到本地!

有没有有效的算法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

已经提供此功能,您正在使用Spark版本> 2.0。您必须将RDD [Float]转换为数据帧。使用approxQuantile(String col, double[] probabilities, double relativeError)中的DataFrameStatFunctions。 从文档说:

  

此方法实现了Greenwald-Khanna算法的变体   (有一些速度优化)。该算法首次出现在   格林沃尔德的节省空间的在线计算分位数摘要   和Khanna