Spark 广播join 与 Hive map join

2022-06-12  本文已影响0人  Eqo

Sprak 广播变量


image.png

广播变量(Broadcast Variables)允许开发人员在每个节点(Worker or Executor)缓存只读变量,而不是在Task之间传递这些变量。调用sc.broadcast(v)创建一个广播变量,该广播变量的值封装在v变量中,可使用获取该变量value的方法进行访问。

原理 将小表的数据 广播到每个executor 所在的内存当中, 每个executor内可能有多个task,但是只存在一个小表的数据

image.png

Hive 对 大表和小表join的优化 就会走Map join
每个block 就是一个task任务
原理 将小表数据 先读到每个task 任务所在的内存当中,有几个task 就有几个 bkl

上一篇下一篇

猜你喜欢

热点阅读