本系列是本人对Hive的学习进行一个整理,主要包括以下内容:
1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介
2.HiveQL学习笔记(二):Hive基础语法与常用函数
3.HiveQL学习笔记(三):Hive表连接
4.HiveQL学习笔记(四):Hive窗口函数
5.HiveQL学习笔记(五):Hive练习题
接下来对第三个内容进行介绍。
表连接
内连接 join
例子:
注:
在写HiveSQL语句时,先对小表进行清洗,可以提升代码的运行速度。
两表关联:
多表关联:
这里第二种写法在数据量较大时,执行的效率最高。
外连接 left join
例子:
没有匹配上的显示为NULL。
这里不用 in / not in,利用left join加where效率会高一些。一般用这种来解决该问题。
多表关联:
全连接 full join
上下连接 union all
注:
union all和union的区别:
例子:
这里上面用的聚合是把0和非0的加起来,不然会出现重复的user_name。