Hive旺旺讨论(关于mapjoin)
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
?
shaomn (2013-08-01 13:39:06):
select/*+ mapjoin(a)*/ a.* from sma a left outer join smb b on a.k=b.k;
FAILED: Error in semantic analysis: MAPJOIN cannot be performed with OUTER JOIN
select/*+ mapjoin(b)*/ a.* from sma a left outer join smb b on a.k=b.k;
Total MapReduce jobs = 1
Execution log at: /tmp/dwapp/dwapp_20130801133737_5696fa81-3104-450d-a4f5-fb5358bdda46.log
從表就可以
主表mapjoin不行
求教原理
卓犖 (2013-08-01 13:40:41):
右表可以左表不行
因?yàn)閘eft outer join 至少會(huì)包含左表所有結(jié)果
shaomn (2013-08-01 13:42:04):
包含左表所有結(jié)果, 是不是說主表如果做了mapjoin,數(shù)據(jù)就會(huì)翻翻
卓犖 (2013-08-01 13:42:33):
所以只能是分發(fā)左表,遍歷左表在右查,不能反過來
切分左表,分發(fā)右表
所以只能是切分左表,分發(fā)右表,遍歷左表在右查,不能反過來
所以一般情況下,left outer join 用于 事實(shí) join 維度,左表全是大表,事實(shí)表
shaomn (2013-08-01 13:44:12):
學(xué)些了
學(xué)習(xí)了
勱熙 (2013-08-01 14:04:53):
jion左表是 小表吧,
李元 (2013-08-01 14:05:25):
犖爺威武
卓犖 (2013-08-01 14:07:38):
@勱熙 left join,右表小
勱熙 (2013-08-01 14:12:28):
犖爺? outer join 右表小, inner join 左表小?
卓犖 (2013-08-01 14:18:01):
reduce join的情況下,reduce端,按key分發(fā)后,左邊n-1個(gè)表會(huì)在內(nèi)存里,遍歷第n個(gè)表,在內(nèi)存 中匹配,這時(shí),左表越均勻(越小)越好
map join不一樣,小表直接全進(jìn)內(nèi)存,所以是右表小好些
剛才我們討論的是left join在map join的情況,也就是第二種
玄木 (2013-08-01 16:37:12):
犖爺, 也就是說 map join? 對(duì)于? left outer join? 需要 右表小, 而對(duì)于reduce join? 則是 最右邊的表最大.? 對(duì)不 ?
卓犖 (2013-08-01 16:39:29):
對(duì)的
轉(zhuǎn)載于:https://my.oschina.net/Chanthon/blog/149357
總結(jié)
以上是生活随笔為你收集整理的Hive旺旺讨论(关于mapjoin)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: more effective C++
- 下一篇: 工作日志:串口外设的开发总结