treeAggregate用例说明

时间:2018-09-26 22:17:11

标签: apache-spark spark-streaming

我正在尝试了解treeAggregate,但在线上没有足够的示例。

以下代码是否合并了分区的元素,然后调用makeSummary并并行地对每个分区执行相同的操作(对结果求和并再次汇总),然后将深度设置为(可以说)5,重复5次?

我想从这些结果中得到的结果是汇总数组,直到得到其中之一为止。

val summary = input.transform(rdd=>{
   rdd.treeAggregate(initialSet)(addToSet,mergePartitionSets,5)
    // this returns Array[Double] not rdd but still
})

val initialSet = Array.empty[Double]
def addToSet = (s: Array[Double], v: (Int,Array[Double])) => {
val p=s ++ v._2
val ret = makeSummary(p,10000)
ret
}
val mergePartitionSets = (p1: Array[Double], p2: Array[Double]) => {
val p = p1 ++ p2
val ret = makeSummary(p,10000)
ret
}

//makeSummary selects half of the points of p randomly

0 个答案:

没有答案