hive的行列转换
2024-08-27 00:03:11
行转列(把多个行合并)
比如把:
id tag
1 12
1 23
2 67
2 78
2 76
行转列之后:
id tag
1 12,23
2 67,78,76
使用函数为:concat_ws(',',collect_set(column)) // 中间用 ',' 号隔开
说明:collect_list 不去重,collect_set 去重。 column 的数据类型要求是 string
例:
select id concat_ws(',',collect_set(tag)) as tag_col from test group by id;
列转行(把一列,分开为几行)
转换之前:
id tag
1 12,23
2 67,78,76
转换之后:
id tag
1 12
1 23
2 67
2 78
2 76
使用函数:lateral view explode(split(column, ',')) num
说明:按 ',' 号分割
例:
select id tag_new from test lateral view explode(split(tag,',')) num as tag_new
最新文章
- Socket实现仿QQ聊天(可部署于广域网)附源码(4)-加入数据库系统搭建完成
- OS实验报告--FCFS算法
- 注解的基本盘点 -- 《Java编程思想》
- 极简Unity调用Android方法
- JQuery validate 在IE兼容模式下出现 js错误(成员找不到)的修正:
- FZU 2129 子序列个数 (递推dp)
- Chomp!游戏 (组合游戏Combinatorial Games)
- mailsend - Send mail via SMTP protocol from command line
- (转载)无缝滚动图片的js和jquery两种写法
- C - Surprising Strings
- redis的特色
- Win32下C++遍历目录和文件的源码
- Hadoop2.3.0具体安装过程
- 【Loadrunner】初学Loadrunner——参数化设置(Xml类型)
- BitMap 算法
- Docker + Jenkins 持续部署 ASP.NET Core 项目
- HTML5网页点击分享到whatsapp
- MongoDB系列----mongostat
- 学习小片段——thymeleaf入门
- SpringMVC之单/多文件上传