hive之高级查询
一、Hive的数据查询
使用方法类似于MySQL,关键字和MySQL一样,不区分大小写
- limit
用于控制输出的行数 - where —在group by之前,可以没有
指定条件对数据进行筛选 - group by子句
对查询的数据进行分组 - having子句
对分组后数据进行进一步的条件筛选,与MySQL的用法一样,只能用在group by之后 - CTE和嵌套查询
1)CTE
WITH t1 AS (SELECT …) SELECT * FROM t1;
- 嵌套查询
SELECT * FROM (SELECT * FROM 表名) a;
- 关联查询 – JOIN发生在WHERE子句之前
指对多表进行联合查询,JOIN用于将两个或多个表中的行组合在一起查询
类似于SQL JOIN,但是Hive仅支持等值连接
内连接:【INNER】 JOIN – 只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来
外连接:OUTER JOIN — RIGHT JOIN, LEFT JOIN, FULL OUTER JOIN
交叉连接:CROSS JOIN --笛卡儿积
隐式连接:Implicit JOIN --不写join,两表进行笛卡儿积的关联 - hive中的Mapjoin
详见: - 集合操作–UNION
1)使用条件:所有子集数据必须具有相同的名称和类型
UNION ALL:合并后保留重复项
UNION:合并后删除重复项(v1.2之后)
2) 可以在顶层查询中使用(0.13.0之后)
3)ORDER BY, SORT BY, CLUSTER BY, DISTRIBUTE BY 和LIMIT适用于合并后的整个结果
4)集合其他操作可以使用JOIN/OUTER JOIN来实现—差集、交集 - 补充
like 模糊查询
rlike 模糊查询,支持正则匹配查询
二、Hive的数据加载和交换
- 使用INSERT语句将数据插入表/分区
//OVERWRITE(覆盖)/INTO(追加)
INSERT OVERWRITE/INTO TABLE 表名select fileds,

本文详细介绍了Hive的高级查询功能,包括数据查询、数据加载与交换、数据排序、聚合运算以及窗口函数的使用。内容涵盖类似MySQL的查询语法、LIMIT、WHERE、GROUP BY、HAVING、CTE、JOIN、UNION及其区别,以及数据导入导出、数据排序和聚合函数的应用。同时,文章还提到了Hive的窗口函数,如ROW_NUMBER、LAG和LEAD等。
最低0.47元/天 解锁文章
240

被折叠的 条评论
为什么被折叠?



