Java UDF最佳实践

为了满足复杂的数据开发场景,Dataphin智能研发版支持自定义Java UDF函数。本教程以Java自带函数(toLowerCase)为例,为您介绍如何基于Dataphin自定义Java UDF函数。

前提条件

下载JAR包

背景信息

本教程基于下载的JAR包自定义的Java UDF函数,实现大写字母转换为小写字母。您也可以编写Java UDF代码,以实现更多的功能,请参见IntelliJ IDEA Java UDF开发最佳实践

本教程中的JAR包的代码如下。

package org.alidata.odps.udf.examples;
import com.aliyun.odps.udf.UDF;

public final class javaudf extends UDF {
  public String evaluate(String s) {
    if (s == null) {
        return null;
    }
        return s.toLowerCase();
  }
}

其中:

  • JAR包路径为org.alidata.odps.udf.examples

  • class文件名为javaudf

步骤一:上传JAR包

  1. 登录Dataphin控制台

  2. 在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>

  3. 进入资源管理页面。

    1. 在Dataphin首页,单击研发

    2. 在数据开发页面,单击数据处理

    3. 在左侧导航栏,单击资源管理资源管理图标。

  4. 资源管理页面,单击资源管理后的图标。

  5. 新建资源对话框中,配置参数。

    faga

    参数

    描述

    类型

    选择jar

    名称

    上传文件的名称需要以文件类型结尾。例如javaudf.jar

    描述

    填写资源的描述。

    上传文件

    选择本地JAR文件,例如javaudf.jar

    计算类型

    选择MaxCompute

    选择目录

    选择用于存放JAR包的目录。系统默认为资源管理,保持默认即可。

  6. 单击提交,完成资源的提交。

  7. 提交备注对话框,填写备注信息。

  8. 单击确定并提交

  9. 可选:发布资源至生产环境。

    • 如果您的开发模式是Dev-Prod模式,则需要发布资源至生产环境,详情请参见管理发布任务

    • 如果您的开发模式是Basic模式,则提交成功的资源,即可进入生产环境。

步骤二:创建MAXC函数

  1. 数据处理页签,单击左侧导航栏的fagag函数管理图标。

  2. 单击函数管理后的图标,选择MAXC函数

  3. 新建函数对话框,配置参数。

    gegeg

    参数

    描述

    名称

    填写函数的名称,例如Java

    选择资源

    选择已上传的资源javaudf.jar

    类名

    类名的格式为JAR包路径.class文件名。填写org.alidata.odps.udf.examples.javaudf

    类型

    函数的类型。选择字符串

    命令格式

    定义引用函数的格式。填写to_char(string i)

    使用文档

    填写函数的使用描述,例如javaudf

    选择目录

    默认为MAXC函数-用户自定义函数,保持默认。

  4. 单击提交,完成资源的提交。

  5. 提交备注对话框,填写备注信息。

  6. 单击确定并提交

  7. 可选:发布函数至生产环境。

    • 如果您的开发模式是Dev-Prod模式,则需要发布函数至生产环境,详情请参见管理发布任务

    • 如果您的开发模式是Basic模式,则提交成功的函数,即可进入生产环境。

步骤三:新建SQL任务

  1. 数据处理页签,单击左侧导航栏agaga计算任务图标。

  2. 计算任务页面,单击计算任务后的图标,选择MAXC任务MAX_COMPUTE_SQL

  3. 新建文件对话框,配置参数。

    参数

    描述

    名称

    填写计算任务的名称,例如javaudf

    调度类型

    选择任务的调度类型为周期性节点

    描述

    填写对任务的简单描述。

    选择目录

    系统自动选择为计算任务

  4. 单击确定

步骤四:使用Java UDF函数

  1. 在SQL任务的代码编写页面,编写代码,例如select java('ABCGDfagHH');

  2. 单击页面右上方的执行,查看运行结果。

    fagag

(可选)调度运维

如果需要定期的运行SQL任务,则需要配置SQL任务的调度参数并发布至生产环境,参与生产环境的调度。

  1. 在代码编写页面,单击页面上方的调度配置,配置调度参数,详情请参见配置逻辑表调度属性

  2. 保存、提交和发布SQL任务。

    1. 单击页面右上方的图标,保存代码。

    2. 单击页面右上方的图标,提交代码。

    3. 提交备注对话框,填写备注信息。

    4. 单击确定并提交

    5. 可选:发布SQL任务至生产环境。

      • 如果开发模式是Dev-Prod模式,则需要发布SQL任务至生产环境,详情请参见管理发布任务

      • 如果开发模式是Basic模式,则提交成功的SQL任务,即可进入生产环境。