> 文章列表 > spark 读取hive分桶表 无shuffle join

spark 读取hive分桶表 无shuffle join

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):