hive join on和where条件之间的区别

hive> select ljn001.*,ljn002.*
 > from ljn001 left outer join ljn002
  > on (ljn001.a = ljn002.a and ljn001.b = ljn002.b and ljn001.b = 2);
OK
a      
  b         a       b
1      
  2         1       2
从执行计划中可以看出 Hive 在扫描 ljn001 表的 map 操作时就已经对 b = 2 进行了过滤。可见 Hive ljn001.b = 2 当成了一个 where 筛选条件而不是一个 on 关联条件。因此在做 Hive 开发时一定要注意这个问题,否则就会产生意想不到的数据错误,也希望 Hive 能尽快修复这个缺陷。 
 



转载于:https://www.cnblogs.com/iathena/p/4791098.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值