spark 读取hive分桶表 无shuffle join
-- 分桶join bucketjoin hive分桶 spark分桶 分桶优化 分桶join优化
https://towardsdatascience.com/best-practices-for-bucketing-in-spark-sql-ea9f23f7dd53
要点:
- spark2开始支持分桶
- spark3.1.1增强了分桶
- 分桶设计合理,可以避免join产生shuffle
- 分桶设计合理,可以避免 rdd.groupby df.groupby 产生shuffle
- 分桶开关 默认开启 spark.sql.sources.bucketing.enabled
分桶表tb1 join 普通表tb2
tb1分桶个数为x spark.sql.shuffle.partitions = y
if x < y:
tb1 tb2都会shuffle
elif tb2.repartition(y,join_key):