【发布时间】:2021-04-09 16:50:39
【问题描述】:
我想确认一些方面,从阅读所有博客和 Databricks 资源和专家 Holden、Warren 等人看来,这些方面的解释似乎仍然很糟糕。我还注意到网上关于这个主题的一些悬而未决的问题。
然后:
-
我的理解是,对于 RDD,我们有 DAG 调度器,它以简单的方式创建阶段。
-
我基于
on reading elsewhere to-date的理解是,对于 DF 和 DS,我们:- 使用 Catalyst 而不是 DAG 调度程序。 但我不相信。
- 有钨。
由于 DAG 也适用于 DF 和 DS(显然),所以我还有 1 个问题 - 只是为了确定:
- 是催化剂也创建了阶段吗?
- 这似乎是一个愚蠢的问题,但我在 SO 上注意到了一个关于禁用 Spark Catalyst Optimizer 的问题。 这意味着没有。
- 此外,由于 Spark 范例是基于阶段的(随机边界),在我看来,决定阶段不是催化剂。
因此我的结论是 DAG 调度程序仍然用于具有 DF 和 DS 的阶段,但我正在寻找确认。
而且,这张图暗示还有一个DAG Scheduler。
这张来自 Databricks 2019 峰会的图片似乎与博客上的声明形成鲜明对比:
帮助 Dataset 表现更好的一个重要元素是 Catalyst Optimizer (CO),一个内部查询优化器。它“翻译” 用于将数据集构建为物理计划的转换 执行。因此,它类似于用于创建物理的 DAG 调度程序 RDD的执行计划。 ...
我在带有 DF 等的 DAG 上看到了许多关于 SO 的未回答问题,并且很多东西都已过时,因为它与 RDD 相关。因此,我在这方面询问了我与 Spark 知识的一些联系,并指出他们在提供合适的答案时疏忽了。
【问题讨论】:
标签: apache-spark