1. 程式人生 > >Hive-函式

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 中使用自定義的函式