如果有一个连接表小到可以放入内存,Hive就可以把较小的表放入每个Mapper的内存执行连接操作。
有如下两种方法实现:
1、//连接暗示/*+ MAPJOIN(employee) */
SELECT /*+ MAPJOIN(employee) */ c.* FROM custs c CROSS JOIN orders o WHERE c.id <> o.cid;2 、 //通过设置自动map端连接转换,实现map连接
set hive.auto.convert.join=true
SELECT c.* FROM custs c CROSS JOIN orders o WHERE c.id <> o.cid;