首页 > 解决方案 > ShuffleMapStage 和 ResultStage 关于 maxPartitionId 有区别吗?

问题描述

我很困惑为什么 ShuffleMapStage maxPartitionId 是stage.numPartitions - 1ResultStage 是s.rdd.partitions.length - 1。而当我深入研究时stage.numPartitions,我发现这stage.numPartitions相当于rdd.partitions.length。为什么不使用 ShuffleMapStagerdd.partitions.length代替stage.numPartitions.

相关代码如下所示。

private[spark] class DAGScheduler(){
    //.........
    stage match {
      case s: ShuffleMapStage =>
        outputCommitCoordinator.stageStart(stage = s.id, maxPartitionId = s.numPartitions - 1)
      case s: ResultStage =>
        outputCommitCoordinator.stageStart(
          stage = s.id, maxPartitionId = s.rdd.partitions.length - 1)
    }
    //.........
}

标签: apache-sparksparkcore

解决方案


推荐阅读