HIVE中常見函數記錄

1、URL解析函數

parse_url(url, partToExtract[, key]) 

解析URL字符串,partToExtract的選項包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]

備註:partToExtract的選項必須是大寫!小寫不報錯但是數據爲NULL。

select parse_url('https://blog.csdn.net/iilegend/article/details/90316385','HOST') from dim_kpi;

 

select parse_url('https://blog.csdn.net/iilegend/article/details/90316385','PATH') from dim_kpi;

2、字符串連接函數,需要是 string型字段。

concat(str1,SEP,str2,SEP,str3,……) 和 concat_ws(SEP,str1,str2,str3, ……) 

select concat('江蘇省','-','南京市','-','玄武區','-','徐莊軟件園');

select concat_ws('-','江蘇省','南京市','玄武區','徐莊軟件園');

這兩個語句的結果都是一樣的:

concat_ws的第一個參數是分隔符,第二個及其以後的參數都以第一個參數爲分隔符進行字符串連接。

concat 就是簡單將所有的參數進行字符串連接。

結論:當連接的內容(字段)多於2個的時候,concat_ws的優勢就顯現了,寫法簡單、方便。

3、時間的相關函數,詳細見上一篇博客。

4. regexp_replace(string A, string B, string C) 字符串替換函數,將字符串A 中的B 用 C 替換。

select regexp_replace('www.tuniu.com','tuniu','jd');

5、trim(string A) 刪除字符串兩邊的空格,中間的會保留。

相應的 ltrim(string A) 左邊刪除空格

           ,rtrim(string A)  右刪除空格

 6、if 語句

第一個參數是判斷語句,結果爲true,那麼執行第二個參數,false就執行第三個參數

(就是簡單的if--else函數)

select if(length('aaa')==3,'是3','不是3')

7、nvl(T value, T default_value) 如果T is null ,返回默認值(注意是null纔行,空值返回的還是空值)

select nvl(null,'abcd')

8、split(str, regex) ,安裝規則截取字符串,返回數組(這個效率就比較慢了。)

select split('zhansan-lisi-wangwu','-')

 

select split('zhansan-lisi-wangwu','-')[0]

如果是特殊字段,需要轉義,如:

select split('大阪酒店|$新麗飯店','\\|\\$')[0];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章