目前 DataWorks(数据工场,原大数据开发套件)的工作空间主要是 MaxCompute,因此工作对象大部分为 ODPS_SQL 类型的脚本和任务。在编辑 ODPS_SQL 类型的脚本和任务的代码时,常需要使用各种函数对数据做标准化处理。
函数管理,是 DataWorks(数据工场)提供的专用于对 MaxCompute SQL 编辑时需要的系统函数和自定义函数进行管理的功能,在此页面可以进行搜索、新建目录、刷新和新建函数的操作。
因此函数管理模块下显示的全部函数,无论是系统默认的还是您自定义的,仅用于 ODPS_SQL 类型的任务和脚本。
函数的应用场景如下图所示:
系统默认提供以下几类系统函数,请根据需要,灵活选择系统函数来实现业务需求。
1)日期函数;
2)数字函数;
3)窗口函数;
4)字符串函数;
5)聚合函数;
6)其他函数;
如果现有的系统函数无法满足需求,DataWorks 还支持您创建自定义函数,具体操作请参见 创建自定义函数。
1)双击函数名,可以查看函数的类型、命令格式以及参数说明,如下图所示:
2)双击打开代码编辑类的任务或脚本,右键单击在左侧目录树找到的需要的函数,选择 引用,则系统将在代码编辑区中会直接出现函数名。
在函数管理页面找到需要删除的函数,右键单击,在菜单栏选择 删除,即可删除该函数。仅 自定义函数 可以被删除。
函数管理页面还提供其他功能,如下所示:
搜索:输入函数关键字进行搜索,可模糊匹配查找本项目空间内的系统内建函数和您的自定义函数。
新建目录:填写新建目录名称后可在函数管理下新建目录。
刷新:刷新当前函数管理目录。
新建函数:新建 MaxCompute 函数。
用户自定义函数(User Defined Function,简称 UDF),是用户除了使用 MaxCompute 提供的 内建函数 外,自行创建的函数,用于满足个性化的计算需求。自定义函数在使用上与普通的内建函数类似,详情请参见 MaxCompute 相关文档 编写 UDF。
本文将通过实现字符小写转换功能的函数,说明用户自定义函数的创建过程,以及如何在 DataWorks(数据工场,原大数据开发套件)中使用该函数,具体流程图如下所示:
注意:在开始本地代码开发前,请确保您的本地环境为 Java 环境。
① 安装 UDF 开发插件。
② 在本地 Java 环境中按照 MaxCompute UDF 框架 编写 Java 代码实现函数,本示例的代码如下所示:
package test_UDF; import com.aliyun.odps.udf.UDF; public class test_UDF extends UDF { public String evaluate(String s) { if (s == null) { return null; } return s.toLowerCase(); } }
③ 将以上代码编译成 Jar 包,您可以单击 my_lower.jar 下载已经编译好的 Jar 文件直接使用。
① 以开发角色进入 阿里云数加平台 > DataWorks > 管理控制台,单击项目列表下对应项目操作栏中的 进入工作区。
② 上传资源文件。在目录树中选择一个文件夹,然后右键选择 上传资源。
③ 填写资源上传弹出框中的各配置项。
④ 填写完成后,单击 提交,若提交成功则资源创建成功。
① 进入 DataWorks 的数据开发页面,切换到 函数管理 模块。
② 在目录树中选择一个文件夹,然后右键选择 新建函数,或者单击右侧工作区右上角的 新建 选择 新建函数。
③ 填写 新建 ODPS 函数 弹出框中的各配置项。
④ 填写完成后,单击 提交,若提交成功则函数创建成功。
在 DataWorks 的数据开发页面新建一个脚本文件,选择为 ODPS_SQL 类型,创建成功后在代码编辑器中编写 SQL 语句,如下所示:
select my_lower("A") from dual ;
注意:这里的 dual 是创建的临时表,您可根据自身需求创建表,建表语句请参见 创建表。
单击 运行,查看结果。
此时,您已经完成自定义函数的创建和使用,并在脚本文件中看到使用效果。如需每天调度执行字符小写转换任务,可将代码复制到 ODPS_SQL 类型的任务中,并为任务配置工作流的调度属性来实现。