首页 > 解决方案 > Catalyst 优化器和 Project Tungsten 的作用是什么

问题描述

我不清楚 Catalyst 优化器和 Project Tungsten 的作用。

我的理解是 Catalyst 优化器将从逻辑计划生成优化的物理计划。然后代码生成器将采用优化的物理计划来发出 Rdd。

代码生成器是 Project Tungsten 或 Catalyst Optimizer 的一部分吗?代码生成器是否也称为“全阶段代码生成器”?

标签: apache-sparkapache-spark-sqlcatalyst-optimizer

解决方案


从 Databricks 或其他在线资源中查看 Glossar 应该可以澄清您的疑问:

“Tungsten 是对 Apache Spark 执行引擎进行更改的伞形项目的代号,该引擎专注于显着提高 Spark 应用程序的内存和 CPU 效率,以使性能更接近现代硬件的极限。”

催化剂优化剂

Catalyst 优化器获取您的代码并将其转换为执行计划,最终生成用于 JVM 的紧凑代码。它经历了如下图所示的四个转型阶段:

在此处输入图像描述

请注意,“代码生成”阶段是 Catalyst Optimizer 中的第四个阶段。更多细节在后续部分。

WholeStage 代码生成器

“Whole-Stage CodeGen 也称为 Whole-Stage Java Code Generation,它是 Spakr SQL 中的一个物理查询优化阶段,它将多个物理操作组合在一起形成一个 Java 函数。”


推荐阅读