hive left join入门
准备数据
u1文件中的数据如下:
1,a
2,b
3,c
4,d
7,y
8,uu2文件中的数据如下:
2,bb
3,cc
7,yy
9,ppcreate table if not exists u1(
id int,
name string
)
row format delimited
fields terminated by ','
;create table if not exists u2(
id int,
name string
)
row format delimited fields terminated by ','
;load data local inpath '/data/u1.txt' into table u1;
load data local inpath '/data/u2.txt' into table u2;
select * from u1 cross join u2;
如下
- A表
left join
B表,是横向关联
- A表
left join
B表,A表的所有数据都有,B表只有部分数据
select * from u1 left join u2 on u1.id=u2.id;
+----+----+----+----+
|id |name|id |name|
+----+----+----+----+
|1 |a |NULL|NULL|
|2 |b |2 |bb |
|3 |c |3 |cc |
|4 |d |NULL|NULL|
|7 |y |7 |yy |
|8 |u |NULL|NULL|
|NULL|NULL|NULL|NULL|
+----+----+----+----+
- join后的表宽度为A表与B表的宽度之后,当然,我们可以自由选取join后需要的列,并不一定要保留所有列
select u1.id,u1.name,u2.name
from u1left join u2 on u1.id = u2.id;+----+----+----+
|id |name|name|
+----+----+----+
|1 |a |NULL|
|2 |b |bb |
|3 |c |cc |
|4 |d |NULL|
|7 |y |yy |
|8 |u |NULL|
|NULL|NULL|NULL|
+----+----+----+
left join
还可以应用在拉链表中,比如当一个全量表left join
一个增量表,可以对全量表中的数据字段依据条件进行更新!
left join与left outer join无区别
select u1.id,u1.name,u2.name
from u1left outer join u2 on u1.id = u2.id;
+----+----+----+
|id |name|name|
+----+----+----+
|1 |a |NULL|
|2 |b |bb |
|3 |c |cc |
|4 |d |NULL|
|7 |y |yy |
|8 |u |NULL|
|NULL|NULL|NULL|
+----+----+----+
left semi join
select *
from u1left semijoin u2 on u1.id = u2.id;
+--+----+
|id|name|
+--+----+
|2 |b |
|3 |c |
|7 |y |
+--+----+
求差集
-- 找出u1有,u2没有的
select * from u1 left join u2 on u1.id=u2.id where u2.id is null;
+----+----+----+----+
|id |name|id |name|
+----+----+----+----+
|1 |a |NULL|NULL|
|4 |d |NULL|NULL|
|8 |u |NULL|NULL|
|NULL|NULL|NULL|NULL|
+----+----+----+----+
求交集
-- 找出u1和u2都有的
select * from u1 left join u2 on u1.id=u2.id where u2.id is not null;
+--+----+--+----+
|id|name|id|name|
+--+----+--+----+
|2 |b |2 |bb |
|3 |c |3 |cc |
|7 |y |7 |yy |
+--+----+--+----+
select * from u1 inner join u2 on u1.id=u2.id;
+--+----+--+----+
|id|name|id|name|
+--+----+--+----+
|2 |b |2 |bb |
|3 |c |3 |cc |
|7 |y |7 |yy |
+--+----+--+----+
hive left join入门相关推荐
- Hive中JOIN的使用入门
Hive中join的用法 Hive中Join的通常使用有以下几种: inner join 等值连接 left join right join full join left semi join cr ...
- 5、HIVE DML操作、load数据、update、Delete、Merge、where语句、基于分区的查询、HAVING子句、LIMIT子句、Group By语法、Hive 的Join操作等
目录: 4.2.1 Load文件数据到表中 4.2.2查询的数据插入到表中 4.2.3将Hive查询的结果存到本地Linux的文件系统目录中 4.2.4通过SQL语句的方式插入数据 4.2.5 UPD ...
- mysql 或hive left join不加关联条件
mysql left join不加关联条件 create table if not exists u1 (id int,name varchar(20) ) ENGINE = MyISAMDEFAUL ...
- Hive中Join的 MR 底层原理
Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join) 一. Hive Common Join 如果不指定MapJoin或者不符合 ...
- Hive的Join操作
文章目录 简介 1.LEFT JOIN 2.INNER JOIN 3.RIGHT JOIN 4.FULL JOIN 5.CROSS JOIN 6.JOIN ON和WHERE条件区别 7.其他常用SQL ...
- Hive map side join入门及测试
什么是MapJoin? MapJoin顾名思义,就是在Map阶段进行表之间的连接.而不需要进入到Reduce阶段才进行连接.这样就节省了在Shuffle阶段时要进行的大量数据传输.从而起到了优化作业的 ...
- 数据分析从零到精通第二课 Hive和Spark入门
03 离线利器:大数据离线处理工具 Hive 的常用技巧 今天为你介绍数据分析师最常用的数据处理工具 Hive 的一些使用技巧.这些技巧我们在工作中使用得比较频繁,如果运用得当,将为我们省去不少时间精 ...
- Hive中JOIN操作
1. 只支持相等JOIN. 2. 多表连接当使用不同的列进行JOIN时,会产生多个MR作业. 3. 最后的表的数据是从流中读取,而前面的会在内存中缓存,因此最好把最大的表放在最后. SELECT /* ...
- Apache Hive JdbcStorageHandler 编程入门指南
以下博文转载自:https://www.iteblog.com/archives/2525.html Apache Hive 从 HIVE-1555 开始引入了 JdbcStorageHandler ...
最新文章
- Collections.addAll() 的使用 以及和list.addAll() 的区别
- quickselect_QuickSelect:使用代码示例解释的快速选择算法
- lucene源代码学习之 lucene的经典打分过程
- MaxScale Binlog Server
- 作业五—个人项目-小学四则运算 “软件”之升级版1
- hello1源码解析
- (47)FPGA同步复位与异步复位(异步复位同步释放)
- 设计界新人不用再苦找资源网站啦!一流导航神器收藏起来!
- 设计模式之GOF23组合模式
- jQuery实现文字左右收缩效果示例
- crmeb java单商户源码java二开文档部署文档H5商城部署文档【5】
- 计算机控制技术 温钢云,计算机控制课程设计――大纯时延一阶惯性环节温度控制系统.docx...
- osgEarth使用经纬度定义视点/设置相机跟随移动的节点
- 蓝桥杯训练系统 分解质因数
- 连八股文都不懂还指望在后端混下去么
- wordcloud:自定义背景图片,生成词云
- js版本飞机大战(完整代码)
- vue项目中实现价格被横线划掉,折扣价效果
- Datawhale优秀学习者4月名单!
- 017循环的方式定义数组、018循环for each、019方法练习、020实参和形参、021方法的返回值
热门文章
- 计算机在英语课中的应用 博客,信息技术在小学英语教学中的应用
- python识别银行卡数字_Python银行卡数字识别项目 (Opencv)
- python定义空函数体_Python 2.2 定义函数
- 那个抗血栓机器人_美国DJO抗血栓压力袜
- html事件绑定的方法,如何获取html元素所绑定的事件
- linux vnc 安装目录,Linux环境VNC服务安装、配置与使用(图)
- easyUi load方法重新加载表单的数据
- pks服务器清除归档文件路径,HoneywellPKS系统维护手册.doc
- linux过滤某个mac的包,macOS 下使用 tcpdump 抓包
- pix4d怎么查看点云数据_PIX4D的两种像控点刺点方式探讨