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
posted @ 2020-08-23 16:44  水木青楓  阅读(213)  评论(0编辑  收藏  举报