spark有向无环图与血缘

Spark 有向无环图与血缘

当我们提交jar包运行时,spark会在节点中随机选择一个节点作为Driver端,Driver端会运行一遍程序形成DAG(有向无环图)

在这里插入图片描述

然后,数据会根据有向无环图运行,图中的每个节点生成的df是一次性的,也就是说C的数据被D1所用后,C的数据就没有了,当D2用C的数据时,C数据会从A -> B -> C 重新计算

优化:我们将C的数据进行持久化,此时DAG会打断血缘,DAG就会变成:

在这里插入图片描述

A 和 B 从DAG中消失, C不会重新计算。

方法:df.cache() 持久化至内存。