一行拆分多行
主要命令:lateral view explode(colB) t as new_col
select
*,
new_col
from tbl
lateral view explode(colB) t as new_col
多行合并成一行
主要命令:concat_ws('分隔符', collect_list(cast (colA as string)))
select
key1,
concat_ws(',', collect_list(cast(col as string))) new_col
from tbl
group by key1
注意:
- 我们需要把 colA 转换为string。因为concat_ws函数只接受 string 或者 array<string> 的数据类型
- collect_set 和 collect_list的区别,collect_set 会去重后再合并在一起,collect_list不会。