hivesql之str_to_map函數


str_to_map(字符串參數, 分隔符1, 分隔符2)

使用兩個分隔符將文本拆分為鍵值對。

分隔符1將文本分成K-V對,分隔符2分割每個K-V對。對於分隔符1默認分隔符是 ',',對於分隔符2默認分隔符是 '='

 

我們先介紹一下這個函數的應用場景。

Z表又被稱之為拉鏈表。在同一個分區中主鍵是stat_date+uid被儲存的值是客戶的狀態。

我們需要對客戶狀態進行統計。

select
str_to_map(concat_ws(',',collect_set(concat(stat_date,':',label_state))),',',':') 
from table1 group by uid;

 

存貯map字段必須用 map<string,string>存儲

DROP TABLE IF EXISTS tmp.tmp_str_to_map;
CREATE TABLE IF NOT EXISTS tmp.tmp_str_to_map
(
uid string comment '客戶號',
date_label map<string,string> comment 'map字段'
);

 

取用map里的字段,用[""]即可

可以直接轉換取用,而不需要存儲字段


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM