vlambda博客
学习文章列表

【每日一题】介绍一下Spark SQL解析过程?

大家好,我是勾叔。今天的面试题是:介绍一下Spark SQL解析过程。

【每日一题】介绍一下Spark SQL解析过程?

问题分析

【每日一题】介绍一下Spark SQL解析过程?
【每日一题】介绍一下Spark SQL解析过程?

所有的SQL解析的过程基本是类似的,下面的描述基本是通用的。

【每日一题】介绍一下Spark SQL解析过程?
【每日一题】介绍一下Spark SQL解析过程?

核心问题回答

【每日一题】介绍一下Spark SQL解析过程?

正常的 SQL 执行先会经过 SQL Parser 解析 SQL,然后经过 Catalyst 优化器处理,最后到 Spark 执行。Catalyst 优化的过程又分为很多个过程,其中包括:
  • Analysis:主要利用 Catalog 信息将 Unresolved Logical Plan 解析成 Analyzed logical plan
  • Logical Optimizations:利用一些 Rule (规则)将 Analyzed logical plan 解析成 Optimized Logical Plan
  • Physical Planning:前面的 logical plan 不能被 Spark 执行,而这个过程是把 logical plan 转换成多个物理执行计划
  • physical plans:在多个执行计划中选择最佳的 physical plan
  • Code Generation:这个过程会把 SQL 查询生成 Java 字节码

大家如果想进行更深入的了解和学习,请关注勾叔谈大数据参与更多互动。




推荐阅读: