【发布时间】:2017-01-08 15:35:07
【问题描述】:
我不太清楚范围分区器在 Spark 中是如何工作的。它使用(Reservoir Sampling)来取样。我对计算输入边界的方式感到困惑。
// This is the sample size we need to have roughly balanced output partitions, capped at 1M.
val sampleSize = math.min(20.0 * partitions, 1e6)
// Assume the input partitions are roughly balanced and over-sample a little bit.
val sampleSizePerPartition = math.ceil(3.0 * sampleSize / rdd.partitions.length).toInt
为什么计算出的 sampleSize 应该乘以 3.0?以及如何获得边界?有人可以给我看一些关于这个的例子吗?谢谢!
【问题讨论】: