hive 之 join 大法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive 之 join 大法相关的知识,希望对你有一定的参考价值。

参考技术A   hive 当中可以通过 join 和 union 两种方式合并表,其中 join 偏向于横向拼接(增加列的数量),union 则主要负责纵向拼接(增加行的数量)。本文先讲解一下 join。

  hive 中 join 主要分为六种,join、left (outer) join、right (outer) join、full (outer) join、cross join 和 left semi join。
  切记,使用 join 时不能忘记关键字 on。如果结尾未写 on,则都相当于进行 cross join,笛卡儿积关联(左表一万条数据,右表一万条数据,笛卡儿积之后就是一亿条数据,可怕吧~)。
  附注一句,join 中将大表写在靠右的位置,hive 处理速度也会快一些~

hive 中不支持 where 语句的子查询。如下sql 语句在 hive 中是要凉凉的:

改写其实也很简单:

那么更加高效的 semi 写法是怎样的呢?

ok,今天就先讲到这里,谢谢各位看官阅读~

以上是关于hive 之 join 大法的主要内容,如果未能解决你的问题,请参考以下文章

Hive Map-Join 配置之谜

Hadoop之Hive的Join语句

Hive Join 优化之 Map Join

Hive 编程入门 之 Join 的失效

大数据之Hive:hive中的cross join函数

Hadoop之Hive的排序