RDD 合并是如何工作的

How does RDD coalesce work

我知道 RDD coalesce 可以用来将 RDD 分区 without shuffle 从较大的大小缩小到较小的大小,例如,从 100 个分区缩小到 10 个分区。

但是我不明白without shuffle是怎么工作的,比如我有10个executor,一个RDD有10个分区,每个executor有1个分区,如果我把这个RDD缩小到5个分区,一定要洗牌吗?

RDD 合并 doesn't do any shuffle 是不正确的,它不进行完全洗牌,而是最小化节点间的数据移动。

因此它会进行一些随机播放,但不会像重新分区那样进行完全随机播放。使用合并,您只能减少分区的数量。如果你想增加它自己重新分区。

有一个很好的blog解释了这个问题