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)

相关推荐
爱吃面的猫15 小时前
大数据Hadoop之——Flink1.17.0安装与使用(非常详细)
大数据·hadoop·分布式
zhuiQiuMX16 小时前
脉脉maimai面试死亡日记
数据仓库·sql·面试
Edingbrugh.南空1 天前
Hadoop MapReduce 入门
大数据·hadoop·mapreduce
大数据CLUB2 天前
基于spark的奥运会奖牌变化数据分析
大数据·hadoop·数据分析·spark
Edingbrugh.南空2 天前
Hadoop高可用集群搭建
大数据·hadoop·分布式
无级程序员3 天前
hive2服务启动报错:/tmp/hive on HDFS should be writable(不是chmod 777能解决的)
hive·hadoop·hdfs
rui锐rui3 天前
大数据学习2:HIve
大数据·hive·学习
凌辰揽月3 天前
Servlet学习
hive·学习·servlet
weixin_307779133 天前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
王小王-1234 天前
基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现
大数据·hive·hadoop·分布式·hadoop公共自行车·共享单车大数据分析·hadoop共享单车