Spark内核的SQL解析

Spark SQL执行涉及语法解析、操作绑定、优化执行策略和物理计划生成。Catalyst工作流程包括Parser、Analyzer、Optimizer和SparkPlan。Parser使用ANTLR 4将SQL转化为未解析逻辑计划,Analyzer解析成解析后的逻辑计划,Optimizer通过Rules优化计划,最后生成物理计划执行。Analyzer借助Catalog信息解析词义,Optimizer包含PushProjectionThroughUnion和ReorderJoin等策略。
摘要由CSDN通过智能技术生成

Spark SQL运行架构

Spark SQL在分析执行过程中会经历如下的几个步骤:语法解析—>操作绑定—>优化执行策略—>执行

1、sqlparser 生成 unresolved logical plan
2、analyzer 生成logical plan
3、optimizer 生成 optimized logical plan
4、SparkPlanner 生成physical plan
5、SparkPlan生成rdd
6、最终将生成的rdd交给spark执行

在这里插入图片描述
由上图看出,Spark SQL 的解析流程为:

  1. 生成未解析的逻辑计划
      在Spark中执行SQL语句就要用到SQLContext的sql()方法,底层会调用SQLParser组件去生成一个未解析的逻辑计划,它的返回结果是一个DataFrame或者Dataset。但是这个过程具有lazy的特性,即生成的DataFrame不是一个数据集而只是一个未解析的逻辑计划的封装,而真正执行剩余步骤的是当这个DataFrame遇到show()这样的操作时才会

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值