UDF是User-Defined Functions(用戶定義函數)的簡稱。
通過以下命令可以查看HIVE中函數的相關文檔:SHOW?FUNCTIONS;
DESCRIBE?FUNCTION?;
DESCRIBE?FUNCTION?EXTENDED?;
1、UDF函數可以直接應用于select語句,對查詢結構做格式化處理后,再輸出內容。
2、編寫UDF函數的時候需要注意一下幾點:
a)自定義UDF需要繼承org.apache.hadoop.hive.ql.UDF。
b)需要實現evaluate函數,evaluate函數支持重載。
4、步驟
a)把程序打包放到目標機器上去;
b)進入hive客戶端,添加jar包:hive>add jar /run/jar/udf_test.jar;
c)創建臨時函數:hive>CREATE TEMPORARY FUNCTION add_example AS 'hive.udf.Add';
d)查詢HQL語句:SELECT?add_example(8,?9)?FROM?scores;
SELECT?add_example(scores.math,?scores.art)?FROM?scores;
SELECT?add_example(6,?7,?8,?6.8)?FROM?scores;
e)銷毀臨時函數:hive> DROP TEMPORARY FUNCTION add_example;
注:UDF只能實現一進一出的操作,如果需要實現多進一出,則需要實現UDAF
官方教程:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF