談笑間學會大數據-Hive函數

談笑間學會大數據-Hive函數

​ 用戶自定義函數(UDF)是一個允許用戶擴展HiveQL的強大的功能。正如我們將看到的,用戶使用Java進行編碼。一旦將用戶自定義函數加入到用戶會話中(交互式的或者通過腳本執行的),它們就將和內置的函數一樣使用,甚至可以提供聯機幫助。Hive具有多種類型的用戶自定義函數,每一種都會針對輸入數據執行特定“一類”的轉換過程。

​ 在ETL處理中,一個處理過程可能包含多個處理步驟。Hive語言具有多種方式來將上一步驟的輸入通過管道傳遞給下一個步驟,然後在一個查詢中產生衆多輸出。用戶同樣可以針對一些特定的處理過程編寫自定義函數。如果沒有這個功能,那麼一個處理過程可能就需要包含一個MapReduce步驟或者需要將數據轉移到另一個系統中來實現這些改變。互聯繫統增加了複雜性,並且增加了配置錯誤或其他錯誤的發生機率。當數據量是GB甚至TB級別時,在不同系統中轉移數據,需要消耗大量的時間。與此相反,UDF是在Hive查詢產生的相同的task進程中執行的,因此它們可以高效地執行,而且其消除了和其他系統集成時所產生的複雜度。

查詢函數和函數描述

###查詢所以函數列表

hive> show functions;
abs
acos
and
array
...

函數描述信息

hive> describe function concat;
concat(str1, str2, ... strN) - returns the concatenation of str1, str2, ... strN

內置函數列表

hive 全部內置函數:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
在這裏插入圖片描述

數學函數

在這裏插入圖片描述

字符函數

在這裏插入圖片描述

收集函數

在這裏插入圖片描述

轉換函數

在這裏插入圖片描述

日期函數

在這裏插入圖片描述

條件函數

在這裏插入圖片描述

內置函數太多了,在此就不一一列舉了,找到了幾個網址挺全面的,需要的時候點一下吧~

https://blog.csdn.net/liu123641191/article/details/80845411
https://www.iteblog.com/archives/2258.html#1If_if
https://blog.csdn.net/weixin_40683253/article/details/101557328
https://blog.csdn.net/xuhualei88/article/details/70214502
https://www.cnblogs.com/MOBIN/p/5618747.html#8

那麼內置函數無法滿足怎麼辦呢?

​ 自定義開發函數撒。怎麼搞呢?

​ 自定義udf、udtf、udaf 可參考之前de博客:https://blog.csdn.net/MrZhangBaby/article/details/90638455

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