[英]Spark Aggregatebykey partitioner order
如果我將哈希分區程序應用於Spark的aggregatebykey函數,即myRDD.aggregateByKey(0, new HashPartitioner(20))(combOp, mergeOp)
在使用combOp和mergeOp聚合鍵/值對之前,myRDD是否會先進行重新分區? 還是myRDD首先通過combOp和mergeOp,然后使用HashPartitioner對生成的RDD進行重新分區?
aggregateByKey
在最終洗牌之前應用地圖端聚合。 由於每個分區都是按順序處理的,因此在此階段應用的唯一操作是初始化(創建zeroValue
)和combOp
。 mergeOp
的目標是合並聚合緩沖區,因此在混洗之前不使用它。
如果輸入RDD是ShuffledRDD
與同分區的請求aggregateByKey
則數據根本沒有被洗牌和數據使用本地聚集mapPartitions
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.