2017-09-16 29 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

相關問題