Hive的三种join

Hive中就是把Map,Reduce的Join拿过来,通过SQL来表示。
参考链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins

1.Reduce /Common/Shuffle Join

Reduce Join在Hive中也叫Common Join或Shuffle Join
如果两边数据量都很大,它会进行把相同key的value合在一起,正好符合我们在sql中的join,然后再去组合,如图所示。

Reduce Join

2.Map Join

1) 大小表连接:

如果一张表的数据很大,另外一张表很少(<1000行),那么我们可以将数据量少的那张表放到内存里面,在map端做join。
Hive支持Map Join,用法如下

工作中遇到:一张大事实表left join一张维表,把维表+mapjoin写进去

--使用mapjoin
SELECT  /*+ mapjoin(B) */    P1

猜你喜欢

转载自blog.csdn.net/someInNeed/article/details/115260865