关于hive中Map join 时大表left join小表的问题
在
hive
中,(启用
Map join
时) 大表
left join
小表,加载从右向左,所以小表会加载进内存,存储成
map
键值对,通过大表驱动小表,来进行
join
,即大表中的
join
字段作为
key
来获取
value
进行
join
。
在
MySQ
L中,
left join
加载从左向右,即
join
左边的表会先加载进内存,与右边表进行
join
。
mapjoin
时要让小表进内存,大表进内存的话可能会因为过大的原因,导致
mapjoin
无法实现,从而转为
reduce join
。
MySQL
跟
hive
加载顺序不同。
最先加载的是驱动表,最好是小表。
版权归原作者 孙中明 所有, 如有侵权,请联系我们删除。