hive 连接(join)查询
1、内连接
hive> select b.*,a.name from userinfo2 b,userinfo a where a.userid=b.userid; hive> select b.*,a.name from userinfo2 b join userinfo a on a.userid=b.userid;
2、外连接
#左联
select b.*,a.name from userinfo2 b left join userinfo a on a.userid=b.userid;
#右联
hive> select a.*,b.name from userinfo b right join userinfo2 a on a.userid=b.userid;
全连接,两边都全显示
hive> select a.*,b.name from userinfo b right join userinfo2 a on a.userid=b.userid;
3、半连接
hive> select * from userinfo2 a where a.userid in (select userid from userinfo); #left semi join必须遵守一个规则:右表(userinfo)只能在on子句里出现,也不能在where子句以及select中出现
hive> select * from userinfo2 a left semi join userinfo b on (a.userid=b.userid);
4、map连接
在之前的内联查询中:
select b.*,a.name from userinfo2 b join userinfo a on a.userid=b.userid;
如果有一个连接表小到可以放入内存,例如userinfo表,hive就可以较小的表放入每个mapper的内存中来执行连接,这就是map连接。 执行这个查询不使用reducer,因此这个查询对right和full join无效,因为只有在对所有输入上进行聚集的步骤(即reduce)才能检测到哪个数据行无法匹配。 map连接可以利用分桶表,需要设置hive.optimize.bucketmapjoin=true
5、子查询,Hive只支持在FROM子句中使用子查询,子查询必须有名字,并且列必须唯一:SELECT ... FROM(subquery) name ...
某些情况子查询可以出现在where子句中,本文中第三点半连接就是子查询,子查询可以出现在where的in或者是exists中。
#子查询的列名必须有唯一的列名。
hive> select year,avg(max_data) from (select year,max(data) as max_data from weather_data group by year) mt group by year;
hive 连接(join)查询的更多相关文章
- hive的join查询
hive的join查询 语法 join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_refere ...
- [Hadoop大数据]——Hive连接JOIN用例详解
SQL里面通常都会用Join来连接两个表,做复杂的关联查询.比如用户表和订单表,能通过join得到某个用户购买的产品:或者某个产品被购买的人群.... Hive也支持这样的操作,而且由于Hive底层运 ...
- Hive学习:Hive连接JOIN用例详解
1 准备数据: 1.1 t_1 01 张三 02 李四 03 王五 04 马六 05 小七 06 二狗 1.2 t_2 01 11 03 33 04 44 06 66 07 77 08 88 1.3 ...
- Hive的join表连接查询的一些注意事项
Hive支持的表连接查询的语法: join_table: table_reference JOIN table_factor [join_condition] | table_reference {L ...
- 《Entity Framework 6 Recipes》中文翻译系列 (19) -----第三章 查询之使用位操作和多属性连接(join)
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-16 过滤中使用位操作 问题 你想在查询的过滤条件中使用位操作. 解决方案 假 ...
- Hibernate中用left join(左外连接)查询映射中没有关联关系的两个表记录问题
一.问题背景 分账表split_summary结构如下: create table SPLIT_SUMMARY ( uuid VARCHAR2(32) not null, star_tdate VAR ...
- (十一) 数据库查询处理之连接(Join)
(十一) 数据库查询处理之连接(Join) 1. 连接操作的一个例子 把外层关系和内层关系中满足一定关系的属性值拼接成一个新的元组 一种现在仍然十分有用的优化思路Late Materializatio ...
- hive:join操作
hive的多表连接,都会转换成多个MR job,每一个MR job在hive中均称为Join阶段.按照join程序最后一个表应该尽量是大表,因为join前一阶段生成的数据会存在于Reducer 的bu ...
- Hive 中Join的专题---Join详解
1.什么是等值连接? 2.hive转换多表join时,如果每个表在join字句中,使用的都是同一个列,该如何处理? 3.LEFT,RIGHT,FULL OUTER连接的作用是什么? 4.LEFT或RI ...
- Hive[6] HiveQL 查询
6.1 SELECT ... FROM 语句 hive> SELECT name,salary FROM employees; --普通查询 hive>SELECT e.n ...
随机推荐
- Hibernate5使用注解方式(转)
用Hibernate5使用映射文件时存在一个问题没有解决,在映射文件中配置了student_sequence,但找不到映射文件自增长的序列的sequence(Oracle)数据库. 输出的是 Hibe ...
- 【Unity3d】MenuItem修饰的方法无法触发的可能原因
遇到了MenuItem修饰的方法无法触发的情况,顺利解决. 类放在Editor目录下,该类下其他方法被MenuItem修饰可以触发. 后来发现我修饰的方法和该类下另一个方法重名了. 改方法名,问题解决 ...
- Maven学习(三)-----Maven本地资源库
Maven本地资源库 Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹.很简单,当你建立一个Maven项目,所有相关文件将被存储在你的M ...
- macOS中启动Tomcat提示Cannot find ./catalina.sh
首先查看Tomcat目录下是否存在catalina.sh,如果文件不存在,文件丢失,最好的方式是重装Tomcat Tomcat官网:http://tomcat.apache.org/ 如果文件存在,那 ...
- 行驶证识别/行驶证OCR识别全方位解析
本文全面解析行驶证OCR识别,包括什么是行驶证OCR识别.如何选择行驶证识别软件.如何操作行驶证识别软件,以及该软件应用的领域等. 一.了解行驶证识别/行驶证OCR识别 行驶证OCR识别技术,也叫行驶 ...
- Jmeter接口测试(三)接口测试实践
Jmeter 脚本编写一般分五个步骤: 1. 添加线程组 2. 添加 http 请求 3. 在 http 请求中写入接入 url.路径.请求方式和参数 4. 添加查看结果树 5. 调用接口.查看返回值 ...
- XSS留言板实现
XSS 留言板实现-笔记 预备知识 XSS漏洞 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS ...
- Web安全入门书籍推荐
<Web应用安全权威指南> 链接:https://pan.baidu.com/s/1wZgv3c9jhWm1bAUHZw3gEg 提取码:teqj <黑客攻防技术宝典__Web实战篇 ...
- [咸恩静][Coffee House]
歌词来源:http://music.163.com/#/song?id=5400159 하루의 시작은 향긋한 커피 [ha-lu-e xi-ja-geun hyang-geu-Tan Keo-Pi] ...
- 兰亭集势股价疯涨背后:物流成外贸B2C发展掣肘
21世纪经济报道 汤浔芳 北京报道 核心提示:“兰亭集势涨势喜人,这样的增长是这两三年中概股没有出现过的.”一位负责美股投资的基金合伙人告诉记者,此前,中概股比较低迷,持续大幅度上涨,难得一见. 在唯 ...