https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView
lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (``','` `columnAlias)*
fromClause: FROM baseTable (lateralView)*
lateral view与用户定义的表生成功能(例如explode())结合使用。如内置表生成函数中所述,UDTF为每个输入行生成零个或多个输出行。侧视图首先将UDTF应用于基本表的每一行,然后将结果输出行与输入行连接起来以形成具有所提供表别名的虚拟表。
可以使用多个lateral view,按照先后顺序加载,靠后的lateral可以使用靠前的lateral
page_ads.page page_ads.ids
page-one [1,2,3]
page-two [4,2,5]
select id, count(1) as cnt from page_ads lateral view explode(ids) tmp as id group by id order by cnt desc;
-- 查询结果
id cnt
2 2
5 1
4 1
3 1
1 1