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能尽快修复这个缺陷。

来源: <http://blog.sina.com.cn/s/blog_6ff05a2c01010oxp.html>

来自为知笔记(Wiz)

时间: 2024-10-07 04:50:34

hive join on和where条件之间的区别的相关文章

数据库左连接left join、右连接right join、内连接inner join on 及 where条件查询的区别

join on 与 where 条件的执行先后顺序: join on 条件先执行,where条件后执行:join on的条件在连接表时过滤,而where则是在生成中间表后对临时表过滤 left join.right join.full join.inner join区别: left join:以左表为基准,根据on条件过滤连接生成临时表,on后面的过滤条件对左表无效 right join:以右表为基准,根据on条件过滤连接生成临时表,on后面的过滤条件对右表无效 full join:以左表为基准

Hive JOIN使用详解

转自http://shiyanjun.cn/archives/588.html Hive是基于Hadoop平台的,它提供了类似SQL一样的查询语言HQL.有了Hive,如果使用过SQL语言,并且不理解Hadoop MapReduce运行原理,也就无法通过编程来实现MR,但是你仍然可以很容易地编写出特定查询分析的HQL语句,通过使用类似SQL的语法,将HQL查询语句提交Hive系统执行查询分析,最终Hive会帮你转换成底层Hadoop能够理解的MR Job. 对于最基本的HQL查询我们不再累述,这

sql表连接left join,right join,inner join三者之间的区别

sql表连接left join,right join,inner join区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (以左表数据为基准,不足补为NULL)right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录(以右表数据为基准,不足补为NULL)inner join(等值连接) 只返回两个表中联结字段相等的行(条件on之相等的数据) 举例如下: ---------------------------------------

inner join 与 left join 之间的区别

关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在前端以柱形图的形式展现出来,查到的数据按行业分组,显示每个行业的户数及户数占比,涉及到的字段有A表的用户数.总用户数和B表的行业名称.本来是不管查不查的到数据,在X轴都应该显示行业名称的,结果是X.Y轴都没有任何数据显示.问题就是我用错了联结方式. 一.sql的left join .right join

inner join(inner可省) 与 left join 之间的区别

关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在前端以柱形图的形式展现出来,查到的数据按行业分组,显示每个行业的户数及户数占比,涉及到的字段有A表的用户数.总用户数和B表的行业名称.本来是不管查不查的到数据,在X轴都应该显示行业名称的,结果是X.Y轴都没有任何数据显示.问题就是我用错了联结方式. 一.sql的left join .right join

left join 、right join 和inner join之间的区别

SQL的left join .right join 和inner join之间的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 举例如下: --------------------------------------------表A记录如下:aID aNum1 a200501112 a200501123 a

Hbase和Hive之间的区别知多少?

Hive是为了简化编写MapReduce程序而生的,使用MapReduce做过数据分析的人都知道,很多分析程序除业务逻辑不同外,程序流程基本一样.在这种情况下,就需要Hive这样的用戶编程接口.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑,就是些表的定义等,也就是表的元数据.使用SQL实现Hive是因为SQL大家都熟悉,转换成本低,类似作用的Pig就不是SQL. HBase为查询而生的,它通过组织起节点內所有机器的內存,提供一個超大的內存Hash表

hive join 空指针异常

2015-07-28 10:03:21,557 Stage-2 map = 100%, reduce = 0% Ended Job = job_1437720498561_1035 with errors Error during job, obtaining debugging information... Examining task ID: task_1437720498561_1035_m_000000 (and more) from job job_1437720498561_1035

sql的left join 、right join 、inner join之间的区别

sql中left join .right join .inner join之间的区别 left join (左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 : right join (右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join (等值连接) 只返回两个表中联结字段相等的行. 原文地址:https://www.cnblogs.com/baixiuhua/p/8862076.html