在 Apache Spark 中,Job(作业)、Stage(阶段) 和 Task(任务) 是三个核心的执行概念,它们之间存在层级关系。 简单来说,划分规则如下: 1. Job 由 Action(行动算子) 触发。 2. Stage 由 Shuffle(宽依赖) 划分。 3. Task 由 Partition(分区数) 决定。 层级关系:Application -> Job -> Stage -> Task --- 1. Job(作业)的划分 划分依据:Action 算子 定义:一个 Job 包含了一系列为了完成某个计算目标而执行的转换操作。 如何划分: Spark 应用程序在遇到 Transformation(转换算子,如 map, filter) 时是懒执行(Lazy Evaluation)的,不会立即计算。 只有当应用程序遇到一个 Action(行动算子,如 collect, count, saveAsTextFile, take) 时,SparkContext 才会向 DAGScheduler 提交一个 Job。 结论:代码中有多少个 Action 算子,就会产生多少个 ...