hive sql中的行转列和列转行
一、测试数据准备
1、创建表单
1 |
|
2、装载数据
文件上传到虚拟机: 主机虚拟机互传文件:SCP命令和MobaXterm工具
linux目录:root/data/data.txt
1 |
|
1 |
|
3、检验数据是否装载好
1 |
|
二、行转列
行转列预期结果
1、使用 case when… then…
1 |
|
2、使用 if()
1 |
|
3、函数
CONCAT(str1, str2)
CONCAT
函数用于将两个或多个字符串连接在一起。CONCAT_WS(separator, str1, str2,…):
CONCAT_WS
函数用于将字符串连接在一起,并使用指定的分隔符将它们分开。COLLECT_SET(col):
COLLECT_SET
函数通常用于处理复杂数据类型,用于收集每个分组内的唯一值,并返回一个集合
三、列转行:
数据准备:
以上面的结果创建临时表
1 |
|
临时表temp_stu_summary
1 |
|
列转行预期结果:
1、使用 union all
1 |
|
2、函数 EXPLODE
1 |
|
EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行
LATERAL VIEW
是 Apache Hive 中用于处理复杂数据类型的查询语法。在 Hive 中,复杂数据类型通常包括数组(Array)、映(Map)和结构(Struct)。
1 |
|
hive sql中的行转列和列转行
https://leaf-domain.gitee.io/2024/01/21/bigdata/hive/hive-sqlHL/