Apache Spark Shuffle:为什么即使在映射端进行排序后,我们也还是在减速器端进行重新排序

时间:2019-03-17 20:45:25

标签: apache-spark

最近我想了解Spark如何使用Sort shuffle。我发现spark对映射器端进行排序,然后使用tim sort在减速器端使用相同的内容。

如果我们已经在mapper端进行了排序,为什么不重用该代码代替重新排序,那么考虑排序是昂贵的呢?

注意:Tim sort需要排序列表。

1 个答案:

答案 0 :(得分:0)

在化简器方面,BlockStoreShuffleReader从多个映射任务中提取混洗数据。尽管地图任务对自己的数据进行了排序,但由于精简器需要合并来自多个源的数据,因此它必须在所有提取的数据中采用组合排序。