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解释了这个问题
我知道 RDD coalesce 可以用来将 RDD 分区 without shuffle
从较大的大小缩小到较小的大小,例如,从 100 个分区缩小到 10 个分区。
但是我不明白without shuffle
是怎么工作的,比如我有10个executor,一个RDD有10个分区,每个executor有1个分区,如果我把这个RDD缩小到5个分区,一定要洗牌吗?
RDD 合并 doesn't do any shuffle
是不正确的,它不进行完全洗牌,而是最小化节点间的数据移动。
因此它会进行一些随机播放,但不会像重新分区那样进行完全随机播放。使用合并,您只能减少分区的数量。如果你想增加它自己重新分区。
有一个很好的blog解释了这个问题