SparkSQL join的三种实现方式
所属分类 spark
浏览量 833
Broadcast Hash Join 大表和小表
Shuffle Hash Join 大表和小表(比上一个大一点)
Sort Merge Join 两张大表
前两者都基于Hash Join
brocadcast vs shuffle
小表 作为Build Table
大表 作为Probe Table
broadcast hash join
较小的表通过广播的方式,由driver发送到各个executor,大表正常被分成多个区,每个分区的数据和本地的广播变量进行join
shuffle hash join
小表比较大,不适合broadcast
对两张表分别进行shuffle,将相同key的数据分到一个分区中,然后分区和分区之间进行join
星型模型或者雪花模型 事实表和维度表
维度表一般指固定的、变动较少的表,例如联系人、物品种类,一般数据量有限
事实表 记录流水,比如销售清单等,随着时间的增长不断增长
小表大小小于 spark.sql.autoBroadcastJoinThreshold 默认10M
小表分区平均大小不超过 spark.sql.autoBroadcastJoinThreshold 默认10M
上一篇
下一篇
主数据简介
数据仓库名词解释
sparkSQL和presto比较
Spark知识点小结
Flink核心技术要点
spark map和mapPartitions