2017-09-16 57 views
2

我有一些Scala代码,我可以使用spark-submit与Spark一起运行。根据我的理解,Spark会创建一个DAG以安排操作。如何获得Apache Spark作业的DAG而不运行它?

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

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

+1

在'dependencies'上应用BFS,你会得到(或多或少)你的DAG。 – zero323

回答

2

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

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

如果您在没有实际操作的情况下使用这些操作,您将得到一个表示即将发生的事情,而无需实际执行繁重的操作。

+0

谢谢:)所以没有什么类似于数据框的依赖关系? :/ – Quetzakol

相关问题