文档中心 > 聚石塔

函数使用

更新时间:2023/06/16 访问次数:9125

目前 DataWorks(数据工场,原大数据开发套件)的工作空间主要是 MaxCompute,因此工作对象大部分为 ODPS_SQL 类型的脚本和任务。在编辑 ODPS_SQL 类型的脚本和任务的代码时,常需要使用各种函数对数据做标准化处理。

函数管理,是 DataWorks(数据工场)提供的专用于对 MaxCompute SQL 编辑时需要的系统函数和自定义函数进行管理的功能,在此页面可以进行搜索、新建目录、刷新和新建函数的操作。

因此函数管理模块下显示的全部函数,无论是系统默认的还是您自定义的,仅用于 ODPS_SQL 类型的任务和脚本

函数的应用场景如下图所示:


image.png


一、系统函数


系统默认提供以下几类系统函数,请根据需要,灵活选择系统函数来实现业务需求。

1)日期函数

2)数字函数

3)窗口函数

4)字符串函数

5)聚合函数

6)其他函数


二、新建自定义函数


如果现有的系统函数无法满足需求,DataWorks 还支持您创建自定义函数,具体操作请参见 创建自定义函数


1. 查看函数并在代码中引用


1)双击函数名,可以查看函数的类型、命令格式以及参数说明,如下图所示:


image.png


2)双击打开代码编辑类的任务或脚本,右键单击在左侧目录树找到的需要的函数,选择 引用,则系统将在代码编辑区中会直接出现函数名。


2. 删除函数


在函数管理页面找到需要删除的函数,右键单击,在菜单栏选择 删除,即可删除该函数。仅 自定义函数 可以被删除。


image.png


3. 其他功能


函数管理页面还提供其他功能,如下所示:


image.png

image.png 索:输入函数关键字进行搜索,可模糊匹配查找本项目空间内的系统内建函数和您的自定义函数。

image.png 新建目录:填写新建目录名称后可在函数管理下新建目录。

image.png 刷新:刷新当前函数管理目录。

image.png 新建函数:新建 MaxCompute 函数。


三、创建自定义函数


用户自定义函数(User Defined Function,简称 UDF),是用户除了使用 MaxCompute 提供的 内建函数 外,自行创建的函数,用于满足个性化的计算需求。自定义函数在使用上与普通的内建函数类似,详情请参见 MaxCompute 相关文档 编写 UDF

本文将通过实现字符小写转换功能的函数,说明用户自定义函数的创建过程,以及如何在 DataWorks(数据工场,原大数据开发套件)中使用该函数,具体流程图如下所示:


image.png


操作步骤

1)在本地编写代码并编译为 Jar 包

注意:在开始本地代码开发前,请确保您的本地环境为 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 文件直接使用。


2)上传资源到 DataWorks

① 以开发角色进入 阿里云数加平台 > DataWorks > 管理控制台,单击项目列表下对应项目操作栏中的 进入工作区


image.png


② 上传资源文件。在目录树中选择一个文件夹,然后右键选择 上传资源

③ 填写资源上传弹出框中的各配置项。


image.png


④ 填写完成后,单击 提交,若提交成功则资源创建成功。


3)新建自定义函数并引用资源

① 进入 DataWorks 的数据开发页面,切换到 函数管理 模块。

② 在目录树中选择一个文件夹,然后右键选择 新建函数,或者单击右侧工作区右上角的 新建 选择 新建函数

③ 填写 新建 ODPS 函数 弹出框中的各配置项。


image.png


④ 填写完成后,单击 提交,若提交成功则函数创建成功。


4)在 ODPS_SQL 任务或脚本中调试函数

在 DataWorks 的数据开发页面新建一个脚本文件,选择为 ODPS_SQL 类型,创建成功后在代码编辑器中编写 SQL 语句,如下所示:


select my_lower("A") from dual ;


注意:这里的 dual 是创建的临时表,您可根据自身需求创建表,建表语句请参见 创建表

单击 image.png运行,查看结果。


image.png


此时,您已经完成自定义函数的创建和使用,并在脚本文件中看到使用效果。如需每天调度执行字符小写转换任务,可将代码复制到 ODPS_SQL 类型的任务中,并为任务配置工作流的调度属性来实现。

FAQ

关于此文档暂时还没有FAQ
返回
顶部