hive转置数据(多列转换为多行)

​​​​​​1.目标:

将如下表格的多列数据

id yes no
001 21 89
002 11 65

 

转换为下表的多行形式:

id bool value
001 yes 21
001 no 89
002 yes 11
002 no 65

 

2.实现:

hive SQL:

SELECT id ,
       bool ,
       val
FROM
  ( SELECT id ,
           MAP('yes', yes, 'no', NO) AS tmp_column
   FROM database.table) x LATERAL VIEW EXPLODE(tmp_column) exptbl AS bool,
                                       val

你可能感兴趣的:(HIVE,HIVE)