Hive中UNION ALL和UNION的区别

1.概述

Hive官方提供了一种联合查询的语法,原名为Union Syntax,用于联合两个表的记录进行查询,此处的联合和join是不同的,join是将两个表的字段拼接到一起,而union是将两个表的记录拼接在一起。 换言之, join是用于左右拼接,而union是用于上下拼接。

2.语法

sql 复制代码
select_statement UNION [ALL | DISTINCT] select_statement UNION [ALL | DISTINCT] select_statement ...

UNION是将多个查询结果集合并到一个结果中。UNION与UNION ALL的区别是 union会对两个子查询的结果去重合并,而union all不会对子查询结果去重处理。

注:

  • Hive 1.2.0之前的版本仅支持UNION ALL,其中重复的行不会被删除。
  • Hive 1.2.0和更高版本中, union的默认从结果中删除重复行。使用可选的distinct关键字指定了删除重复行。使用可选的all关键字,不会删除重复行,结果包含select语句中的所有匹配行。
    • 可以在同一查询中混合使用union all和union distinct。
    • 每个select语句返回的列的数量和名称必须相同,否则报错。

3.使用案例

3.1 准备数据

test1表数据

id username ds
001 zhangsan 20240307
002 lisi 20240307
003 wangwu 20240307

test2表数据

id username ds
002 lisi 20240307
003 wangwu 20240307
004 zhaoliu 20240307

3.2 查询结果

UNION的查询结果

sql 复制代码
SELECT  id
       ,username
FROM    test1
WHERE   ds = '${bizdate}'
UNION 
SELECT  id
       ,username
FROM   test2
WHERE   ds = '${bizdate}';
id username
001 zhangsan
002 lisi
003 wangwu
004 zhaoliu

UNION ALL 的查询结果

id username
002 lisi
003 wangwu
001 zhangsan
002 lisi
004 zhaoliu
003 wangwu

4.总结

联合查询方式 UNION UNION ALL
对重复结果的处理 筛选掉重复的结果 不会去除重复记录
对排序的处理 将两个结果合并后并返回 会按照字段的顺序进行排序
效率
总述 不去重不排序 去重并排序
  • UNION ALL:不去重不排序直接原表合并。
  • UNION:先表合并、再去重、再排序。<=>作用等价于 先distinct去重、再UNION ALL表合并、再order by排序。
  • 效率方面,UNION是UNION ALL的3倍。数据量大时,不建议直接用UNION,建议先去重再UNION ALL。
相关推荐
无级程序员7 小时前
hive2服务启动报错:/tmp/hive on HDFS should be writable(不是chmod 777能解决的)
hive·hadoop·hdfs
rui锐rui9 小时前
大数据学习2:HIve
大数据·hive·学习
凌辰揽月13 小时前
Servlet学习
hive·学习·servlet
weixin_307779131 天前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
王小王-1231 天前
基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现
大数据·hive·hadoop·分布式·hadoop公共自行车·共享单车大数据分析·hadoop共享单车
王小王-1231 天前
基于Hadoop的大规模文本词频统计分析系统设计与实现
hadoop·mapreduce·hadoop词频统计·hadoop文本统计·mapreduce词频统计
陈敬雷-充电了么-CEO兼CTO1 天前
推荐算法系统系列>推荐数据仓库集市的ETL数据处理
大数据·数据库·数据仓库·数据挖掘·数据分析·etl·推荐算法
桂成林2 天前
Hive UDF 开发实战:MD5 哈希函数实现
hive·hadoop·哈希算法
isNotNullX2 天前
什么是数据分析?常见方法全解析
大数据·数据库·数据仓库·人工智能·数据分析
王小王-1232 天前
基于Hadoop的京东厨具商品数据分析及商品价格预测系统的设计与实现
hadoop·数据分析·京东厨具·厨具分析·商品分析