为了满足复杂的数据开发场景,Dataphin智能研发版支持自定义Java UDF函数。本教程以Java自带函数(toLowerCase)为例,为您介绍如何基于Dataphin自定义Java UDF函数。
前提条件
已下载JAR包。
背景信息
本教程基于下载的JAR包自定义的Java UDF函数,实现大写字母转换为小写字母。您也可以编写Java UDF代码,以实现更多的功能,请参见IntelliJ IDEA Java UDF开发最佳实践。
MaxCompute计算类型下若需跨项目引用自定义函数(UDF),即在一个项目引用另外一个项目的UDF,可以使用project_name:function_name
。例如在项目test_dev下有自定义函数 to_normal,则在项目xyz_dev下可以通过test_dev:to_normal
来使用该函数。
本教程中的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任务
在开发页面的左侧导航栏中,选择数据处理 > 计算任务。
在计算任务列表上方单击图标,选择MAX_COMPUTE_SQL。
在新建MAX_COMPUTE_SQL任务对话框中,配置以下参数。
参数
描述
名称
填写计算任务的名称,例如javaudf。
调度类型
选择任务的调度类型为周期性节点。
选择目录
系统自动选择为计算任务。
使用模板
单击开关来选择是否使用模板,若开启使用模板,则还需选择模板和模板版本。
描述
填写对任务的简单描述。
单击确定。
步骤四:使用Java UDF函数
在SQL任务的代码编写页面,编写代码,例如
select java('ABCGDfagHH');
。单击代码编辑区域上方的运行,运行当前代码并查看运行结果。
(可选)调度运维
如果需要定期的运行SQL任务,则需要配置SQL任务的调度参数并发布至生产环境,参与生产环境的调度。