Spark调优学习记录(五)语法优化之RBO

在逻辑计划之后做的,Catalyst优化器,共81条优化规则,分为27组,三大类。

谓词下推(Predicate Pushdown)

join on xxxx 

where xxxx

提前过滤,减少下游处理数据量。

Inner Join

on

RBO优化前:

RBO优化后:

where

RBO优化前:

RBO优化后:

结论

内连接,RBO优化,会提前对左右两表都做过滤。

Left Join

on 左表条件

RBO优化前:

RBO优化后:

where 左表条件

RBO优化前:

RBO优化后:

on 右表条件

RBO优化前:

RBO优化后:

where 右表条件

RBO优化前:

RBO优化后:

结论

外连接,写在where后的条件,两表都会过滤。

左外连接,写在on的条件,右表进行过滤。

右外连接,写在on的条件,左表进行过滤。

注意:外关联时,过滤条件写在on与where,结果不一样!!

列裁剪(Column Pruning)

扫描数据源时,只读取与查询相关的字段。

常量替换(Constant Folding)

表达式替换

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值