Hive 常见面试题(二)
1、Hive行转列和列转行如何实现?
- 行转列
使用 concat_ws 实现行转列。
例如:
select user_id,
concat_ws(',',collect_list(order_id)) as order_value
from col_lie
group by user_id
;
- 列转行
使用 lateral view explode 实现列转行。
explode 的意思是打散,把一个字符串按照分隔符打散。
lateral 是横向聚合的意思。
view 是生成临时视图的意思。
例如:
select user_id,order_value,order_id
from lie_col
lateral view explode(split(order_value,',')) num as order_id