【发布时间】:2016-12-01 20:36:45
【问题描述】:
所以如果我之前有过改造:
myRDD = someRDD.map()
mySecondRDD = myRDD.aggregateByKey(initValue)(CombOp , MergeOp)
此时 myRDD 没有分区器,但 mySecondRDD 有一个 hashPartitioner。 首先我想问:
1)我必须在 myRDD 中指定一个分区器吗?如果我这样做,怎么可能将它作为参数传递给 aggregateByKey?
*请注意,myRDD 是一种转换,没有分区器
2) myRDD 不应该在这两个命令的末尾有与 mySecondRDD 相同的分区器,而不是没有?
3) 这 2 个命令将执行多少次随机播放?
4) 如果我在 myRDD 中使用 partitionBy 指定一个分区器,并设法将它作为参数传递给 aggregateByKey,我是否会将 shuffle 减少到 1 而不是 2?
很抱歉,我还是不太明白它是如何工作的。
【问题讨论】:
标签: scala apache-spark partitioning