通过Lateral View与UDTF(表生成函数)结合,将单行数据拆成多行数据,即行转列。
命令格式
lateralView: lateral view [outer] <udtf_name>(<expression>) <table_alias> as <columnAlias> (',' <columnAlias>)
fromClause: from <baseTable> (lateralView) [(lateralView) ...]
- udtf_name:必填。将一行数据拆成多行数据的UDTF,请参见其他函数。
- expression:必填。待拆分行数据所属列名。
- table_alias:必填。UDTF结果集的别名。
- columnAlias:必填。拆分后得到的列的别名。
- baseTable:必填。数据源表。
此外,from
后可以有多个Lateral View语句,后面的Lateral View语句能够引用它前面的所有表和列名,实现对不同列的行数据进行拆分。
示例数据
假设已有一张表pageAds,它有三列数据,第一列是pageid string,第二列是