Spark任务的Spark RDD图、谱系图、DAG是什么?他们是什么关系

What are Spark RDD graph, lineage graph, DAG of Spark tasks? what are their relations

当我们谈论 RDD 图时,它是指沿袭图还是 DAG(有向无环图)或两者?何时生成谱系图?是在Spark任务的DAG之前生成的吗?

一个 RDD 可以依赖零个或多个其他 RDD。例如,当您说 x = y.map(...) 时,x 将取决于 y。这些依赖关系可以被认为是一个图表。

你可以称这个图为lineage图,因为它代表了每个RDD的推导。它也必然是一个 DAG,因为其中不可能存在循环。

不需要随机播放的狭窄依赖关系(想想 mapfilter)可以折叠成一个 阶段 。阶段是一个执行单元,它们由 DAGScheduler 从 RDD 依赖关系图中生成。阶段也相互依赖。 DAGScheduler 构建并使用此依赖图(也必然是 DAG)来安排阶段。