一文了解 Apache Spark 3.0 动态分区裁剪(Dynamic Partition Pruning)

本文介绍了Apache Spark 3.0中的动态分区裁剪技术,对比了静态分区裁剪,并通过示例展示了动态分区裁剪在JOIN操作中的应用。Databricks的测试结果显示,相比于Spark 2.4,动态分区裁剪在102个查询中有60个查询性能提升显著,最高可达18倍。

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

640?wx_fmt=jpeg

静态分区裁剪(Static Partition Pruning)

用过  Spark  的同学都知道, Spark  SQL 在查询的时候支持分区裁剪,比如我们如果有以下的查询:
SELECT * FROM Sales_iteblog WHERE day_of_week = 'Mon'
Spark 会自动进行以下的优化:

640?wx_fmt=jpeg如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

从上图可以看到,Spark 在编译 SQL 的时候自动将 Filter 算子下推到数据源,也就是在 Scan 前进行了 Filter 操作,将 day_of_week = 'Mon' 的数据全部拿出来,其他数据不需要的拿出,这样 Spark SQL 中处理的数据就变少了,整个 SQL 的查询数据就会变快,这一切都是编译的时候(compile time)进行的,所以这个叫做静态分区裁剪(Static Partition Pruning)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值