为什么等分数据工作得更快?

why equal partitioned data works faster?

repartition() 使用新分区在不同节点之间重新分配数据,coalesce 做同样的事情,但它保留一些原始分区而不进行混洗,并在其中添加其他分区。

为什么它总是在 spark 中说,平均分区的数据将被更快地处理。为什么会这样,为什么在数据集分布不均匀的情况下不会这样?

是什么阻止了 not evenly distributed datasets 处理得更快?

有什么想法吗?

'partition' 数据作为 'stage' 的一部分由 'task' 处理。一个阶段有许多 运行 并行的任务。 Spark 'app' 由多个阶段组成。下一阶段只有在前一阶段完成后才能开始。

大分区有更多的数据要处理,因此需要更长的时间。在某些情况下,资源会(非)必要地保留更长时间。