Scala Spark Aggregatebykey分割器顺序

Scala Spark Aggregatebykey分割器顺序,scala,apache-spark,rdd,Scala,Apache Spark,Rdd,如果我对Spark的aggregatebykey函数应用哈希分区器,即myRDD.aggregatebykey(0,新哈希分区器(20))(combOp,mergeOp) 在使用combOp和mergeOp聚合myRDD的键/值对之前,是否首先对其进行重新分区?或者myRDD是否先通过combOp和mergeOp,然后使用HashPartitioner对结果RDD进行重新分区?aggregateByKey在最终洗牌之前应用映射端聚合。由于每个分区都是按顺序处理的,因此在此阶段应用的唯一操作是初始

如果我对Spark的aggregatebykey函数应用哈希分区器,即myRDD.aggregatebykey(0,新哈希分区器(20))(combOp,mergeOp)


在使用combOp和mergeOp聚合myRDD的键/值对之前,是否首先对其进行重新分区?或者myRDD是否先通过combOp和mergeOp,然后使用HashPartitioner对结果RDD进行重新分区?

aggregateByKey
在最终洗牌之前应用映射端聚合。由于每个分区都是按顺序处理的,因此在此阶段应用的唯一操作是初始化(创建
zeroValue
)和
combOp
mergeOp
的一个目标是组合聚合缓冲区,以便在洗牌之前不使用它


如果输入RDD是一个
ShuffledRDD
,其分区器与
aggregateByKey
请求的分区器相同,则数据根本不会被洗牌,而是使用
mapPartitions
在本地聚合数据

aggregateByKey
在最终洗牌之前应用地图端聚合。由于每个分区都是按顺序处理的,因此在此阶段应用的唯一操作是初始化(创建
zeroValue
)和
combOp
mergeOp
的一个目标是组合聚合缓冲区,以便在洗牌之前不使用它


如果输入RDD是一个
ShuffledRDD
,其分区器与
aggregateByKey
请求的分区器相同,则数据根本不会被洗牌,而是使用
mapPartitions
在本地聚合数据

谢谢你的回复,那么什么是mapPartitions映射呢?combOp?@foboi1122是的,combOp。谢谢你的回复,那么mapPartitions映射是什么呢?combOp?@foboi1122是的,combOp。