Hive學習筆記:split函數分割字符串


語法

split(str string, regex string) -- 使用 regex 分割字符串 str

返回值為一個數組。

基本用法

select split('a,b,c,d', ',') from temp_cwh_test; -- 分割
-- 結果為數組
["a","b","c","d"]

截取字符串中某個值

select split('a,b,c,d', ',')[0] from temp_cwh_test; 
-- 提取第1個值
a

可以指定提取結果數組中的某個值。

特殊字符的處理

針對特殊分割符號,需要特殊處理。

select split('122.122.122.122', '.') from temp_cwh_test; 
-- 將出錯,無法得到預想結果

正確語法為:

select split('122.122.122.122', '\\.') from temp_cwh_test; 
-- 結果
["122","122","122","122"]

split 包含在雙引號 " " 之中時,需要添加4個反斜杠。例如:

hive -e "... split('122.122.122.122', '\\\\.')"

否則得到的值為空值 NULL。

同樣的 | 等特殊符號需做類似處理。

有些特殊字符轉義只需要1個反斜杠,而有些需要2個反斜杠,需要注意測試一下。

參考鏈接1:hive函數 -- split 字符串分割函數

參考鏈接2:【Hive】split函數(分割字符串)


免責聲明!

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



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