MaxCompute 自定义 Java UDF

公司大数据开发使用的是阿里云的 MaxCompute,MaxCompute 自身提供了很多 Hive SQL 函数,能够满足大部分需求,但是总有一些 Hive SQL 函数无法满足的需求,比如 base64 编解码等等,目前 MaxCompute 内部是没有相关函数的。解决办法是用户自定义函数,MaxCompute 提供了相关的文档,具体可以看 这里。

本篇文章主要记录使用 Java 来自定义函数。

1. IDEA 里新建项目

在 IDEA 里新建一个项目,并创建一个 class 文件,命名为 data_mask。

2. 添加 odps 依赖

在 pom 文件添加 odps 依赖:


    com.aliyun.odps
    odps-sdk-udf
    0.29.10-public

3. 编写代码

在类文件里编写代码(data_mask 要继承自 阿里云的 UDF):

package com.example.data_mask;

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

public class data_mask extends UDF {

     // 创建 evaluate 方法,与 HIVE 一样,MaxCompute 的 UDF 通常使用 evaluate 方法
     public String evaluate(String string) {
         return string + "UDF";
     }

}

4.导出 JAR 包

此时 Java UDF 函数已自定义完毕,接着需要在 MaxCompute 的资源函数里添加 JAR 包。

5. 新建资源

在 MaxCompute 里新建资源,并把刚刚导出的 JAR 包导入。

6. 注册函数

在 MaxCompute 里注册函数,类名里面填写 package 以及类名,资源列表里填写刚刚导入的 JAR 包名称。

7.提交发布

将刚刚创建的资源和函数都提交,并发布。

发布成功之后就可以直接调用了,直接根据定义的函数名称调用即可:

参考:

  • Java UDF
  • JSON字符串获取示例

你可能感兴趣的:(MaxCompute 自定义 Java UDF)