为了满足复杂的数据开发场景,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包
登录Dataphin控制台。
在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>。
进入资源管理页面。
在Dataphin首页,单击研发。
在数据开发页面,单击数据处理。
在左侧导航栏,单击资源管理图标。
在资源管理页面,单击资源管理后的图标。
在新建资源对话框中,配置参数。
参数
描述
类型
选择jar。
名称
上传文件的名称需要以文件类型结尾。例如
javaudf.jar
。描述
填写资源的描述。
上传文件
选择本地JAR文件,例如
javaudf.jar
。计算类型
选择MaxCompute。
选择目录
选择用于存放JAR包的目录。系统默认为资源管理,保持默认即可。
单击提交,完成资源的提交。
在提交备注对话框,填写备注信息。
单击确定并提交。
可选:发布资源至生产环境。
如果您的开发模式是Dev-Prod模式,则需要发布资源至生产环境,详情请参见管理发布任务。
如果您的开发模式是Basic模式,则提交成功的资源,即可进入生产环境。
步骤二:创建MAXC函数
在数据处理页签,单击左侧导航栏的函数管理图标。
单击函数管理后的图标,选择MAXC函数。
在新建函数对话框,配置参数。
参数
描述
名称
填写函数的名称,例如
Java
。选择资源
选择已上传的资源
javaudf.jar
。类名
类名的格式为JAR包路径.class文件名。填写
org.alidata.odps.udf.examples.javaudf
。类型
函数的类型。选择字符串。
命令格式
定义引用函数的格式。填写
to_char(string i)
。使用文档
填写函数的使用描述,例如
javaudf
。选择目录
默认为MAXC函数-用户自定义函数,保持默认。
单击提交,完成资源的提交。
在提交备注对话框,填写备注信息。
单击确定并提交。
可选:发布函数至生产环境。
如果您的开发模式是Dev-Prod模式,则需要发布函数至生产环境,详情请参见管理发布任务。
如果您的开发模式是Basic模式,则提交成功的函数,即可进入生产环境。
步骤三:新建SQL任务
在数据处理页签,单击左侧导航栏计算任务图标。
在计算任务页面,单击计算任务后的图标,选择MAXC任务MAX_COMPUTE_SQL。
在新建文件对话框,配置参数。
参数
描述
名称
填写计算任务的名称,例如
javaudf
。调度类型
选择任务的调度类型为周期性节点。
描述
填写对任务的简单描述。
选择目录
系统自动选择为计算任务。
单击确定。
步骤四:使用Java UDF函数
在SQL任务的代码编写页面,编写代码,例如
select java('ABCGDfagHH');
。单击页面右上方的执行,查看运行结果。
(可选)调度运维
如果需要定期的运行SQL任务,则需要配置SQL任务的调度参数并发布至生产环境,参与生产环境的调度。