【hadoop】hive的Lateral view

分类: 大数据hadoop |
lateral view的语法:
lateralView: LATERAL VIEW
udtf(expression) tableAlias AS
columnAlias (','
columnAlias)
fromClause: FROM baseTable (lateralView)
描述:
lateral view用于和split、explode等UDTF一起使用的,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合,lateral view首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,lateral view在把结果组合,产生一个支持别名表的虚拟表。
例子
1、一个lateral view的例子
http://s3/mw690/7e04e0d0tdf6b9c56b472&690view" TITLE="【hadoop】hive的Lateral
create table tbl_split_test(dateid string,name string,type string) ROW FORMAT DELIMITED FILEDS TERMINATED BY '\t';
load data local inpath '/home/sun/test.txt' overwrite into table tbl_split_test;
select dateid ,name,cc from tbl_split_test lateral view
explode(split(type,"//|")) tbl_split_test
结果:
http://s10/mw690/7e04e0d0tdf6c50c84789&690view" TITLE="【hadoop】hive的Lateral
执行过程是先执行from到 as cloumn的列过程,在执行select 和where后边的语句
2、多个lateral view
http://s10/mw690/7e04e0d0tdf6c7b0d69c9&690view" TITLE="【hadoop】hive的Lateral
select dateid,aa,bb from tbl_split_test2
where aa='rr' and bb=2;
这里的执行顺序按照lateral view的出现顺序去执行。
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView