閱讀537 返回首頁    go 阿裏雲


創建自定義函數__快速開始_大數據開發套件-阿裏雲

UDF全稱User Defined Function,即用戶自定義函數。ODPS提供了很多內建函數來滿足用戶的計算需求,同時用戶還可以通過創建自定義函數來滿足不同的計算需求。UDF在使用上與普通的內建函數類似。Java UDF即通過Java實現的自定義函數。

Java UDF在大數據平台中的總體使用流程包括本地準備調試Java代碼並編譯為jar包、在大數據平台IDE中創建資源並上傳jar包、在大數據平台IDE中新建注冊函數與jar資源關聯和UDF使用四大步驟,具體如下圖所示:

Demo_UDF_1

案例說明

實現一個字符小寫轉換功能的UDF。

step1:代碼編寫

請在您本地的Java環境(需安裝UDF開發插件)中按照ODPS UDF框架編寫Java代碼實現函數功能並進行編譯成jar包。

本實例的Java代碼如下,編譯後的jar包為my_lower.jar

  1. package test_UDF;
  2. import com.aliyun.odps.udf.UDF;
  3. public class test_UDF extends UDF {
  4. public String evaluate(String s) {
  5. if (s == null) { return null; }
  6. return s.toLowerCase();
  7. }
  8. }

step2:添加jar資源

在運行UDF之前,必須指定引用的UDF代碼。用戶編寫的Java代碼通過資源的形式添加上傳到大數據平台中。而Java UDF必須被打成jar包,以jar包資源添加到平台,UDF框架會自動加載jar包,運行用戶自定義的UDF。

具體操作如下:

步驟1:以開發者身份進入阿裏雲數加平台>開發套件>管理控製台,左側導航“數據開發”項目列表中點擊對應項目操作欄中的數據開發

QK_4_0.JPG

步驟2:新建資源文件。在文件目錄樹文件夾上右鍵上傳資源,上傳資源。

步驟3:在資源上傳彈出框中填寫各配置項,並點擊提交。

Demo_UDF_1

提交成功則資源創建成功。

step3:注冊UDF函數

上述步驟已經完成Java UDF代碼的編寫和jar資源上傳,使得大數據平台有條件自動獲取用戶代碼並運行,但此時在大數據平台中仍無法使用這個UDF,因為平台中並沒有關於這個UDF的任何信息。因此需要用戶在平台中注冊一個唯一的函數名,並指定這個函數名與哪個資源的哪個函數對應。

具體操作如下:

步驟1:創建函數目錄。文件目錄樹切換到“函數管理”,新建目錄。

步驟2:在目錄文件夾上右鍵>新建函數,或者右邊工作區右上角 新建> 新建函數。

步驟3:在新建ODPS函數彈出框中填寫各配置項,並提交。

Demo_UDF_1

提交成功則函數創建成功。

step4:在ODPS SQL中試用函數

Java UDF的具體使用方法與平台中內建函數相同,具體操作如下:

步驟1:工作區右上角新建>>新建腳本文件,創建一個ODPS SQL腳本文件。

步驟2:在ODPS代碼編輯器中編寫ODPS SQL。示例代碼:

  1. select test_lower('A') from dual;

步驟3:點擊運行Run_Button

Demo_UDF_1

到此我們已經完成了Java UDF的注冊並在SQL中進行了本地調用測試,若需每天調度執行字符小寫轉換任務,可在工作流中新建ODPS SQL節點來完成,並配置工作流的調度屬性。

最後更新:2016-11-24 11:23:48

  上一篇:go 創建數據同步任務__快速開始_大數據開發套件-阿裏雲
  下一篇:go 創建OPEN MR__快速開始_大數據開發套件-阿裏雲