Hive:日志,hql运行方式,Array,行列转换

日志

可以在终端通过 find / | grep hive-log4j2 命令查找Hive的日志配置文件

这些文件用于配置Hive的日志系统。它们不属于系统日志也不属于Job日志,而是用于配置Hive如何记录系统日志和Job日志, 可以通过hive-log4j2 查找日志的位置

HQL的3种运行方式

第1种就是linux终端, 第3种是通过第三方工具,比如DataGrip, 第3种方式用得比较多

  1. 在linux命令行中执行HQL

root@hadoop01 \~\] $ hive --database 数据库名 -e 'hql query' ![](https://i-blog.csdnimg.cn/direct/1318305ed94845db81247aa0bb047ec1.png) e--execute f--file s--silent i--init 示例 : 没有写数据库名称默认是从default数据库中查找 ![](https://i-blog.csdnimg.cn/direct/51326f464b1444bca2171809fe4019ca.png) ![](https://i-blog.csdnimg.cn/direct/fd1ff1022cf24a6aa8085e4723d56099.png) 2. beeline 连接 ![](https://i-blog.csdnimg.cn/direct/9df4b8c755f147c6a8595bd3331b0fc3.png) ### 复杂数据类型Array ![](https://i-blog.csdnimg.cn/direct/018dbf41a6ed445ab0cae3d938370955.png) 注意: 创建表时除了需要指定数组元素的分隔符, 否则所有的元素都会被当成一个元素 array里面元素的数据类型只能是基本数据类型,不能是另一种复杂类型 示例 ![](https://i-blog.csdnimg.cn/direct/bf285a9fa2524721b5f3d7fa86dec8ab.png) ![](https://i-blog.csdnimg.cn/direct/1ca7deff5db2465b828a5a0e58b710fd.png) 一个双引号是一个元素 ![](https://i-blog.csdnimg.cn/direct/742bc54078ce4514a5bc33c4f4c62a23.png) 访问数组的具体元素使用下标 ![](https://i-blog.csdnimg.cn/direct/9e20846f0d9f4e7d814257bc164bd711.png) size(数组名) 返回数组元素的个数 ![](https://i-blog.csdnimg.cn/direct/dc6250ddfec244f186caebb5d8a63281.png) ![](https://i-blog.csdnimg.cn/direct/5566091c281748a788fd087e3a1c11a1.png) 如果想查询每个人的总成绩, 因为王五只考了2门成绩, 所以出现了NULL, 需要对空值进行处理, 这需要知道每个数组的元素个数,比较麻烦 ![](https://i-blog.csdnimg.cn/direct/c54a4f544d8b4a04af3f05c622e70679.png) ![](https://i-blog.csdnimg.cn/direct/8ec1855ecbc6433d84ed6a6f57234a64.png) 把数组里面的元素展开,可以更方便地统计总成绩, 即行转列, 可以使用展开函数(也称爆炸函数) ![](https://i-blog.csdnimg.cn/direct/3ef0ab591ce94d87a9078fa3ce3555fb.png) ### **行转列: 展开函数explode和虚拟表lateral view** ![](https://i-blog.csdnimg.cn/direct/d68ccd2ced444bec8e67cf99c77bb9fe.png) UDTF是User-Defined Table-Generating Functions的缩写,即用户定义的表生成函数。 使用时select后面不能出现其他列 示例: 爆炸函数 ![](https://i-blog.csdnimg.cn/direct/27c641714b724bfeb67887d3dd90c1b7.png) ![](https://i-blog.csdnimg.cn/direct/056d07414c7e419da044548bb786aa2d.png) 示例: 虚拟表 lateral view explode(score) 虚拟表的表名是mytab 给表起个别名 cj 作为查询列 ![](https://i-blog.csdnimg.cn/direct/f05a13aa2294425cbf2905afc2455a5a.png) ![](https://i-blog.csdnimg.cn/direct/02cb8baf338e44debc5a91ddad244454.png) ![](https://i-blog.csdnimg.cn/direct/14f50a3a5a034b19aac99599eaeee1ce.png) ### 列转行 : collect_set和 collect_list 多变一 ![](https://i-blog.csdnimg.cn/direct/441e37e1ea8b40ca95ab0307c681866a.png)

相关推荐
小戈爱学习2 小时前
CDP集群中通过Hive外部表迁移HBase数据的操作记录
hive·hadoop·hbase
随心............12 小时前
hive专题面试总结2
数据仓库·hive·hadoop
wyn200011281 天前
Hive学习笔记
hive·笔记·学习
beijingliushao1 天前
26-数据仓库与Apache Hive
hive
王小王-1231 天前
基于Hadoop的成都市二手房数据分析与房价预测系统的设计与实现
hadoop·房价数据分析·hadoop房价预测·二手房分析·大数据房价分析·hive二手房数据分析·成都市二手房
派可数据BI可视化2 天前
CIO如何规划企业BI分析指标体系 —— 从经营出发到绩效管理
数据仓库·信息可视化·数据挖掘·数据分析·商业智能bi
大数据狂人2 天前
从 Hive 数仓出发,全面剖析 StarRocks、MySQL、HBase 的使用场景与区别
hive·mysql·hbase
青木川崎3 天前
Hive_sql如何计算连续签到天数
hive·hadoop·sql
Jay Kay3 天前
hive新增列之后插入新数据时,新列为NULL的解决办法
数据仓库·hive·hadoop
Zhang.jialei3 天前
HiveMQ 2024.9 设计与开发文档
hive·物联网·activemq