hive一行数据中一列拆分成多行
来源:互联网 发布:sql字段添加内容 编辑:程序博客网 时间:2024/05/10 16:50
本文转载自:http://blog.csdn.net/winnerspring/article/details/44677505
lateral view用于和split、explode等UDTF一起使用的,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合,lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,lateral view在把结果组合,产生一个支持别名表的虚拟表。
单个LATERAL VIEW:
源表(table1)数据{A:string B:array C:string}
A B C
190 [1030,1031,1032,1033,1190] select id
191 [1030,1031,1032,1033,1190] select id
希望的结果是:
190 1030 select id
190 1031 select id
190 1032 select id
190 1033 select id
190 1190 select id
191 1030 select id
191 1031 select id
191 1032 select id
191 1033 select id
191 1190 select id
故使用select A,B,C from table_1 LATERAL VIEW explode(B) table1 as B得到上述结果
多个LATERAL VIEW的介绍:
LATERAL VIEW clauses are applied in the order that they appear. For example with the following base table:
SELECT myCol1, myCol2 FROM baseTable
LATERAL VIEW explode(col1) myTable1 AS myCol1
LATERAL VIEW explode(col2) myTable2 AS myCol2;
结果如下:
复杂方式:
select * from tb_split;
20141018 aa|bb 7|9|0|3
20141019 cc|dd 6|1|8|5
使用方式:select datenu,des,type from tb_split
lateral view explode(split(des,”//|”)) tb1 as des
lateral view explode(split(type,”//|”)) tb2 as type
执行过程是先执行from到 as cloumn的列过程,在执行select 和where后边的语句;
- hive一行数据中一列拆分成多行
- hive一行数据中一列拆分成多行
- hive一行数据中一列拆分成多行
- [Hive]Hive将一行记录拆分成多行
- Hive将一行记录拆分成多行
- 【数据平台】pandas将一列中的文本拆分成多行
- excel一列数据拆分为两列
- 用 SQL 语句对一行数据拆分成多行的方法
- 如何在数据窗口中加入一列空列做为选中一行的标志?
- 在JTable中复制一行或一列
- hive 中,Load data导入多出现一列null或者全部数据都是null
- sql server中将一列多行的数据转成一列一行,和一行数据解析成一行多列
- Excel中如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表
- word 中将一列数据转换成连续的一行数据
- 一个简单的方法查询一列数据为一行
- 将表查询出来的一列数据变为一行
- SQL将一行多列数据合并成 一列
- Linux-在文本最后一行最后一列处理数据
- MFC主窗口出现之前弹出子窗口与子窗口交互问题
- poj2395 & poj 1751
- hadoop1.2.1的的简单安装
- Android 设置登录密码必须是数字或者字母并弹出数字键盘
- TimeDate
- hive一行数据中一列拆分成多行
- Ubuntu终端 GIT配色 去掉过去单调的黑底白色
- Minimum Queue with Constant Increment
- jQuery Event.stopPropagation() 函数详解
- 黑马程序员-----多线程
- uip在stm32上移植问题总结
- utf8 和 UTF-8 有什么区别
- Android之Activity学习
- GOF23设计模式之——单例设计模式