HiveQL学习笔记(三):Hive表连接

本系列是本人对Hive的学习进行一个整理,主要包括以下内容:
1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介
2.HiveQL学习笔记(二):Hive基础语法与常用函数
3.HiveQL学习笔记(三):Hive表连接
4.HiveQL学习笔记(四):Hive窗口函数
5.HiveQL学习笔记(五):Hive练习题
接下来对第三个内容进行介绍。

表连接

内连接 join

HiveQL学习笔记(三):Hive表连接_第1张图片
例子:
HiveQL学习笔记(三):Hive表连接_第2张图片

HiveQL学习笔记(三):Hive表连接_第3张图片
在写HiveSQL语句时,先对小表进行清洗,可以提升代码的运行速度
HiveQL学习笔记(三):Hive表连接_第4张图片
两表关联:
HiveQL学习笔记(三):Hive表连接_第5张图片
多表关联:
HiveQL学习笔记(三):Hive表连接_第6张图片
这里第二种写法在数据量较大时,执行的效率最高。

外连接 left join

HiveQL学习笔记(三):Hive表连接_第7张图片
例子:
HiveQL学习笔记(三):Hive表连接_第8张图片
没有匹配上的显示为NULL
HiveQL学习笔记(三):Hive表连接_第9张图片
这里不用 in / not in,利用left join加where效率会高一些。一般用这种来解决该问题。

多表关联:
HiveQL学习笔记(三):Hive表连接_第10张图片

全连接 full join

HiveQL学习笔记(三):Hive表连接_第11张图片
HiveQL学习笔记(三):Hive表连接_第12张图片

上下连接 union all

HiveQL学习笔记(三):Hive表连接_第13张图片

HiveQL学习笔记(三):Hive表连接_第14张图片
union all和union的区别
HiveQL学习笔记(三):Hive表连接_第15张图片
例子:
HiveQL学习笔记(三):Hive表连接_第16张图片
这里上面用的聚合是把0和非0的加起来,不然会出现重复的user_name。

你可能感兴趣的:(Hive)