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

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号