【发布时间】:2023-03-07 20:07:01
【问题描述】:
我需要优化我的 pyspark 代码,以便有一个尽可能并行的执行计划;我想知道是否有比 .explain 方法(不可读)更好的方法来探索 DAG,例如“普通”图形对象。
例如,知道阶段的总数、DAG 的“第一级节点”的数量等会非常有用。 谢谢。
【问题讨论】:
标签: python apache-spark directed-acyclic-graphs explain
我需要优化我的 pyspark 代码,以便有一个尽可能并行的执行计划;我想知道是否有比 .explain 方法(不可读)更好的方法来探索 DAG,例如“普通”图形对象。
例如,知道阶段的总数、DAG 的“第一级节点”的数量等会非常有用。 谢谢。
【问题讨论】:
标签: python apache-spark directed-acyclic-graphs explain
您可以通过添加“True”从催化剂优化器中获得更详细的解释计划。也许这就是您正在寻找的内容
df = spark.range(10)
df.explain(True)
...output...
== Parsed Logical Plan ==
Range (0, 10, step=1, splits=Some(8))
== Analyzed Logical Plan ==
id: bigint
Range (0, 10, step=1, splits=Some(8))
== Optimized Logical Plan ==
Range (0, 10, step=1, splits=Some(8))
== Physical Plan ==
*(1) Range (0, 10, step=1, splits=8)
更详细地说,您还可以访问 Spark UI,它提供了 DAG 可视化和作业、阶段、任务、缓存对象、执行程序分布和环境变量的分解......您可以通过 url 'driver_node_host: 4040' 这是默认端口 ... 此处提供更多配置的文档 => https://spark.apache.org/docs/latest/configuration.html#spark-ui
【讨论】: