我有一些Scala代码可以使用spark-submit与Spark一起运行。根据我的理解,Spark会创建一个DAG以安排操作。
有没有办法在不实际执行繁重操作的情况下检索此DAG,例如只是通过分析代码?
我想要一个有用的表示,例如数据结构或至少是书面表示,而不是DAG可视化。
答案 0 :(得分:4)
如果您使用的是数据帧(spark sql),则可以使用df.explain(true)来获取计划和所有操作(优化前后)。
如果您使用的是rdd,则可以使用rdd.toDebugString来获取字符串表示,使用rdd.dependencies来获取树本身。
如果你在没有实际行动的情况下使用它们,你将得到一个代表,如果没有实际做重的话,将会发生什么。