簡體   English   中英

str_to_hive 函數將字符串的每個字符拆分為 key

[英]str_to_hive function splits each character of the string as key

我在 hive 的字符串列之一中有一個字符串"description=Qiemo|locationToolsID=733" 當我嘗試使用分隔符將其轉換為地圖時| 對於每個 KV 和=鍵和值,它不起作用。

具體來說,當我運行時:

str_to_map(str('description=Qiemo|locationToolsID=733'),'|','=').

我期待

description:Qiemo
locationToolsID:733

但我越來越像這樣

{"a":null,"":"","c":null,"d":null,"D":null,"e":null,"i":null,"I":null,"l":null,"m":null,"n":null,"o":null,"p":null,"Q":null,"r":null,"s":null,"3":null,"t":null,"T":null,"7":null,"|":null}

這里發生了什么?

你必須逃離| 字符,因為它在 Java 正則表達式中具有特殊含義。 你可以試試這個:

select str_to_map("description=Qiemo|locationToolsID=733",'\\\|','=');
                         OR
select str_to_map("description=Qiemo|locationToolsID=733",'[|]','=');

輸出將是: {"locationToolsID":"733","description":"Qiemo"}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM