hive 常用的 join 操作 实例

Posted remainsu

tags:

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

test_a 表
id value
1 java
2 python
3 c++
test_b 表
id value
1 java
2 go
3 php
4 c++
1. join

计算的是笛卡尔积,不推荐使用

select * from test_a join test_b on test_a.value = test_b.value;

查询结果: 
java  java 
c++   c++ 
2. left outer join & right outer join

注意:最好将小表放在 左 | 右

select * from test_a left outer join test_b on test_a.value = test_b.value; 

查询结果:
java    java 
python  NULL 
c++     c++ 

select * from test_a right outer join test_b on test_a.value = test_b.value; 

查询结果:
java    java 
NULL    go 
NULL    php 
c++     c++ 
3. full join
select * from test_a full outer join test_b on test_a.value = test_b.value; 

查询结果:
java    java 
python  NULL 
NULL    go 
NULL    php 
c++     c++ 
4. left semi join
select * from test_a left semi join test_b on test_a.value = test_b.value; 
等价于:
select * from test_a left outer join test_b on test_a.value = test_b.value where test_b.value is not null; 

查询结果:
java  java 
c++   c++

以上是关于hive 常用的 join 操作 实例的主要内容,如果未能解决你的问题,请参考以下文章

博学谷学习记录超强总结,用心分享 | hive 查询分组join

Hive常用算子实现原理简述--MapReduce版

Hive SQL Join关联查询

hive ----- hive的常用操作

hive中数据倾斜

hive中 常用操作