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

时间:2017-09-16 13:34:53

标签: scala apache-spark

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

如果你在没有实际行动的情况下使用它们,你将得到一个代表,如果没有实际做重的话,将会发生什么。