SparkSQL的执行流程(附常量折叠、谓词下推、列裁剪案例)

本文详细介绍了SparkSQL的执行流程,包括Parser转换、Analyzer分析、Optimizer优化以及query planner的选择。重点阐述了Catalyst优化器中的RBO(基于规则的优化),如常量折叠、谓词下推和列裁剪,并通过案例说明其优化效果。同时,提到了CBO(基于代价的优化)在选择最优物理计划中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、RDD 和 SparkSQL 运行时的区别:

  • 和 RDD 不同, SparkSQL 的 Dataset 和 SQL 并不是直接生成计划交给集群执行, 而是经过了一个叫做 Catalyst 的优化器, 这个优化器能够自动帮助开发者优化代码。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWH6L-56JmO6JmO,size_20,color_FFFFFF,t_70,g_se,x_16


2、SparkSQL 的执行流程: 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aWH6L-56JmO6JmO,size_20,color_FFFFFF,t_70,g_se,x_16

1、Parser转换器,第三方类库 Antlr 实现。将 sql 字符串切分成 Token,根据语义规则解析成一颗AST语法树,称为Unresolved Logical Plan 未解决的逻辑计划;

        简单来说就是判断 SQL 语句是否符合规范,比如select from where 这些关键字是否写对。就算表名字段名写错也无所谓。

2、Unresolved Logical Plan经过Analyzer分析器,借助于表的真实数据元数据 schema catalog,进行数据类型绑定和函数绑定,解析为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹长大大

客官,赏个银子吧,别下次一定了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值