explode(col):将hive一列中复杂的array或者map结构拆分成多行。 explode(ARRAY) 数组的每个元素生成一行 explode(MAP) map中每个key-value对,生成一行,key为一列,value为一列
数据:
10 CLARK|KING|MILLER 20 SMITH|JONES|SCOTT|ADAMS|FORD 30 ALLEN|WARD|MARTIN|BLAKE|TURNER|JAMES
建表:
create table emp2( deptno int, names array<string> row format delimited fields terminated by '\t' collection items terminated by '|';
插入数据
load data local inpath '/export/data/hivedatas/emp2.txt' into table emp2;
查询数据
select * from emp;
使用expload查询
select explode(names) as name from emp;
LATERAL VIEW 用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias