肯定界线
最后就可以经由过程获取的样本数据,肯定界线了。
- def determineBounds[K : Ordering : ClassTag](
- candidates: ArrayBuffer[(K, Float)],
- partitions: Int): Array[K] = {
- val ordering = implicitly[Ordering[K]]
- // 数据格局为(key,权重)
- val ordered = candidates.sortBy(_._1)
- val numCandidates = ordered.size
- val sumWeights = ordered.map(_._2.toDouble).sum
- val step = sumWeights / partitions
- var cumWeight = 0.0
- var target = step
- val bounds = ArrayBuffer.empty[K]
- var i = 0
- var j = 0
- var previousBound = Option.empty[K]
- while ((i < numCandidates) && (j < partitions - 1)) {
推荐阅读
跟着数字化企业尽力寻求最佳安然解决筹划来保护其赓续扩大的收集,很多企颐魅正在寻求供给互操作性功能的下一代对象。软件定义收集(SDN)具有很多的优势,经由过程将多个设备的┞菲握平面整>>>详细阅读
本文标题:Spark源码分析之分区器的作用
地址:http://www.17bianji.com/lsqh/34919.html
1/2 1