MaxCompute 自定義 Java UDF

公司大數(shù)據(jù)開發(fā)使用的是阿里云的 MaxCompute,MaxCompute 自身提供了很多 Hive SQL 函數(shù),能夠滿足大部分需求,但是總有一些 Hive SQL 函數(shù)無法滿足的需求,比如 base64 編解碼等等,目前 MaxCompute 內部是沒有相關函數(shù)的。解決辦法是用戶自定義函數(shù),MaxCompute 提供了相關的文檔,具體可以看 這里。

本篇文章主要記錄使用 Java 來自定義函數(shù)。

1. IDEA 里新建項目

在 IDEA 里新建一個項目,并創(chuàng)建一個 class 文件,命名為 data_mask。

2. 添加 odps 依賴

在 pom 文件添加 odps 依賴:

<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>odps-sdk-udf</artifactId>
    <version>0.29.10-public</version>
</dependency>

3. 編寫代碼

在類文件里編寫代碼(data_mask 要繼承自 阿里云的 UDF):

package com.example.data_mask;

// 阿里云 UDF
import com.aliyun.odps.udf.UDF;

public class data_mask extends UDF {

     // 創(chuàng)建 evaluate 方法,與 HIVE 一樣,MaxCompute 的 UDF 通常使用 evaluate 方法
     public String evaluate(String string) {
         return string + "UDF";
     }

}

4.導出 JAR 包

此時 Java UDF 函數(shù)已自定義完畢,接著需要在 MaxCompute 的資源函數(shù)里添加 JAR 包。

5. 新建資源

在 MaxCompute 里新建資源,并把剛剛導出的 JAR 包導入。

6. 注冊函數(shù)

在 MaxCompute 里注冊函數(shù),類名里面填寫 package 以及類名,資源列表里填寫剛剛導入的 JAR 包名稱。

7.提交發(fā)布

將剛剛創(chuàng)建的資源和函數(shù)都提交,并發(fā)布。

發(fā)布成功之后就可以直接調用了,直接根據(jù)定義的函數(shù)名稱調用即可:

參考:

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容