hive lateral view 与 explode 区别

1,explode就是将hive一行中复杂的array或者map结构拆分成多行。

select explode(split('a,b,c,d,e',','));

输出


hive lateral view 与 explode 区别_第1张图片

2,Lateral View一般与用户自定义表生成函数(如explode())结合使用。 如内置表生成函数中所述,UDTF为每个输入行生成零个或多个输出行。 Lateral View 首先将UDTF应用于基表的每一行,然后将结果输出行连接到输入行,以形成具有提供的表别名的虚拟表。

with test as (

select 'test' a,split('a,b,c,d,e',',') b

)

select a,adid from test  LATERAL VIEW explode(b) adTable AS adid


hive lateral view 与 explode 区别_第2张图片

你可能感兴趣的:(hive lateral view 与 explode 区别)