hive学习笔记之map-side joins

在分布式计算框架中,其实表连接这类操作都是需要跨节点的,所以计算效率都比较慢。hive也是如此,针对表连接,hive在大表与小表进行连接时有个优化经常使用,就是map-side join。

比如:

select  /*+ mapjoin(u)*/  u.user_id,l.time  from user u join opera_log l on u.user_id=l.user_id where l.month='2015-10' ;

较早版本的hive是直接这么显示的使用map-side join


较新的版本舍弃了这种写法,直接使用如下替代:

set hive.auto.convert.join=true;   //自动实现map side join

set hive.mapjoin.smalltable.filesize=25000000;//设置小表的数据文件的大小小于25M时,就使用mapside

select  u.user_id,l.time  from user u join opera_log l on u.user_id=l.user_id where l.month='2015-10' ;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值