Hive-函式
1、系統自帶的函式
1)檢視系統自帶的函式
2)顯示自帶的函式的用法
3)詳細顯示自帶的函式的用法
2、自定義函式
1)Hive 自帶了一些函式,比如:max/min 等,但是數量有限,自己可以通過自定義 UDF 來方便的擴充套件。
2)當 Hive 提供的內建函式無法滿足你的業務處理需要時,此時就可以考慮使用使用者自定義 函式(UDF:user-defined function)。
3)根據使用者自定義函式類別分為以下三種:
(1)UDF(User-Defined-Function)
一進一出
(2)UDAF(User-Defined Aggregation Function)
聚集函式,多進一出
類似於:count/max/min
(3)UDTF(User-Defined Table-Generating Functions)
一進多出
如 lateral view explore()
4)程式設計步驟:
(1)繼承 org.apache.hadoop.hive.ql.UDF
(2)需要實現 evaluate 函式;evaluate 函式支援過載;
(3)在 hive 的命令列視窗建立函式
a)新增 jar:
add jar linux_jar_path
b)建立 function:
create [temporary] function [dbname.]function_name AS class_name;
(4)在 hive 的命令列視窗刪除函式
Drop [temporary] function [if exists] [dbname.]function_name;
3、自定義 UDF 函式開發案例
1)建立一個 java 工程,並建立一個 lib 資料夾
2)將 hive 的 jar 包解壓後,將 apache-hive-1.2.1-bin\lib 檔案下的 jar 包都拷貝到 java 工程中。
3)建立一個類
4)打成 jar 包上傳到伺服器/opt/module/datas/udf.jar
5)將 jar 包新增到 hive 的 classpath
6)建立臨時函式與開發好的 java class 關聯
7)即可在 hql 中使用自定義的函式