1. 程式人生 > 實用技巧 >Hive Map結構

Hive Map結構

平時很少用到map型別,這次用到了記錄一下。

適用場景:行轉列,且mid的key個數可能不一樣的情況
舉個栗子:

 1 select 
 2     mid,
 3     tags['電影'] as movie,
 4     tags['音樂'] as music
 5 from(
 6     select 
 7         mid,
 8         str_to_map(concat_ws(',',collect_list(concat(key,":",value)))) as tags 
 9     from (
10         select
11             mid,
12 key, 13 concat_ws('-',collect_list(value))as value 14 from( 15 select 1 as mid,'電影' as key,'驚悚' as value 16 union ALL 17 select 1 as mid,'音樂' as key,'搖滾' as value 18 union ALL 19 select 1 as mid,'電影' as key
,'喜劇' as value 20 ) a 21 group by 22 mid,key 23 )t 24 group by 25 mid 26 ) tt

構造資料:

midkeyvalue
1 電影 驚悚
1 音樂 搖滾
1 電影 喜劇

執行結果:

midmoviemusic
1 驚悚-喜劇 搖滾