我不清楚 Catalyst 优化器和 Project Tungsten 的作用。
我的理解是 Catalyst 优化器将从逻辑计划生成优化的物理计划。然后代码生成器将采用优化的物理计划来发出 Rdd。
代码生成器是 Project Tungsten 或 Catalyst Optimizer 的一部分吗?代码生成器是否也称为“全阶段代码生成器”?
我不清楚 Catalyst 优化器和 Project Tungsten 的作用。
我的理解是 Catalyst 优化器将从逻辑计划生成优化的物理计划。然后代码生成器将采用优化的物理计划来发出 Rdd。
代码生成器是 Project Tungsten 或 Catalyst Optimizer 的一部分吗?代码生成器是否也称为“全阶段代码生成器”?
从 Databricks 或其他在线资源中查看 Glossar 应该可以澄清您的疑问:
“Tungsten 是对 Apache Spark 执行引擎进行更改的伞形项目的代号,该引擎专注于显着提高 Spark 应用程序的内存和 CPU 效率,以使性能更接近现代硬件的极限。”
Catalyst 优化器获取您的代码并将其转换为执行计划,最终生成用于 JVM 的紧凑代码。它经历了如下图所示的四个转型阶段:
请注意,“代码生成”阶段是 Catalyst Optimizer 中的第四个阶段。更多细节在后续部分。
“Whole-Stage CodeGen 也称为 Whole-Stage Java Code Generation,它是 Spakr SQL 中的一个物理查询优化阶段,它将多个物理操作组合在一起形成一个 Java 函数。”