Apache Spark reduceByKey是否以分区方式工作?

时间:2016-03-12 23:31:22

标签: apache-spark

假设我有2个包含PairRDD [(Int,Int)]的分区,数据被分区为;

P1 => (1,1),(1,2),(2,2)

P2 => (1,3),(2,3),(2,4)

如果我在PairRDD [(Int,Int)]上运行reduceByKey((n1,n2)=> n1 + n2));

我能得到吗?

P1 => (1,3),(2,2)

P2 => (1,3),(2,7)

P1 => (1,6)

P2 => (2,9)

换句话说,reduceByKey是否保持RDD的分区相同? 或者在标题中,reduceByKey是否按分区工作?

1 个答案:

答案 0 :(得分:1)

ReduceByKey会给你结果(1,6)和(2,9)。按键减少将首先在每个分区中组合结果,然后将数据混洗以全局组合。

我不确定你想要理解什么,但是,有一篇很好的文章提供了关于改组的细节,这解释了关于数据混乱的一些重要事项。

您可以查看here

相关问题