有人可以区分 RDD Lineage 和 DAG(直接无环图)吗?

Ars*_*lan 2 directed-acyclic-graphs apache-spark

有人可以澄清 RDD Lineage 和 DAG(直接非循环图)之间的区别和相似之处吗?

Art*_*sia 11

DAG(直接无环图)是 Spark 执行程序的方式的表示 - 该图上的每个顶点都是一个单独的操作,边代表每个操作的依赖关系。您的程序(因此代表它的 DAG)可以在多个实体(RDD、数据帧等)上运行。RDD 谱系只是导致创建特定 RDD 的 DAG(一个或多个操作)的一部分。

因此,一个 DAG(一个 Spark 程序)可能会创建多个 RDD,并且每个 RDD 都有其沿袭(即 DAG 中通向该 RDD 的路径)。如果 RDD 的某些分区损坏或丢失,Spark 可能会重新运行 DAG 的该部分,从而创建这些分区。

如果 Spark 程序的唯一目的是仅创建一个 RDD 并且这是最后一步,那么整个 DAG 就是该 RDD 的沿袭。

您可以在这里了解更多信息 - https://data-flair.training/blogs/rdd-lineage/