如何在不运行 Apache Spark 作业的情况下获取它的 DAG?

Que*_*kol 7 scala apache-spark

我有一些 Scala 代码,可以使用 spark-submit 与 Spark 一起运行。据我了解,Spark 创建了一个 DAG 以安排操作。

有没有办法在不实际执行繁重操作的情况下检索这个 DAG,例如仅通过分析代码?

我想要一个有用的表示,例如数据结构或至少是书面表示,而不是 DAG 可视化。

Ass*_*son 7

如果您使用数据帧(spark sql),您可以使用 df.explain(true) 来获取计划和所有操作(优化前后)。

如果您使用 rdd,您可以使用 rdd.toDebugString 来获取字符串表示,并使用 rdd.dependencies 来获取树本身。

如果您在没有实际操作的情况下使用它们,您将获得将要发生的事情的表示,而无需实际执行繁重的工作。