我知道RDD coalesce可用于将RDD分区without shuffle
从较大的大小缩小到较小的大小,例如,从100个分区缩小到10个分区。
但我不明白without shuffle
是如何工作的,例如,我有10个执行器,RDD有10个分区,每个执行器有1个分区,如果我将这个RDD缩小到5个分区,必须洗牌吗?
答案 0 :(得分:1)
RDD coalesce doesn't do any shuffle
不正确它不会完全洗牌,而是最小化跨节点的数据移动。
所以它会做一些洗牌,但不会重新分配将完成的洗牌。使用coalesce,您只能减少分区数量。如果你想增加它,那就进行重新分配。
有一个很好的blog解释了这个问题