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)

相关推荐
yumgpkpm10 小时前
Cloudera CDH、CDP、Hadoop大数据+决策模型及其案例
大数据·hive·hadoop·分布式·spark·kafka·cloudera
小湘西13 小时前
数仓分层架构详解2:ODS、DWD、DWS
大数据·数据库·数据仓库
小湘西13 小时前
数仓分层架构详解:ODS、DWD、DWS
数据仓库·数据分析
鲨莎分不晴14 小时前
大数据的“数字金库”:HDFS 核心原理与操作指令全解
大数据·hadoop·hdfs
鲨莎分不晴14 小时前
给 Hadoop 插上 SQL 的翅膀:Apache Hive 架构与实战全解
hadoop·sql·apache
德彪稳坐倒骑驴14 小时前
Hive电商数据分析项目 过程记录
hive·hadoop·数据分析
红队it14 小时前
【Spark+Hadoop】基于spark+hadoop游戏评论数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
大数据·hadoop·分布式·算法·游戏·数据分析·spark
yumgpkpm14 小时前
华为 GaussDB 商业版(本地部署)部署方案及相关步骤
hive·hadoop·redis·elasticsearch·华为·kafka·gaussdb
独自归家的兔14 小时前
Ambari与Bigtop深度解析:大数据集群管理与生态标准化利器
大数据·hadoop·ambari
俊哥大数据15 小时前
【项目8】基于Hadoop+Hive+SpringBoot+Vue智慧社区大数据仓库项目
数据仓库·hive·hadoop