注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

函数使用

更新时间:2018/06/11 访问次数:2389

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

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

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

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

系统函数

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

新建自定义函数

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

查看函数并在代码中引用

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

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

删除函数

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

其他功能

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

1

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

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

1 刷新:刷新当前函数管理目录。

1 新建函数:新建 MaxCompute 函数。

创建自定义函数

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

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

1

操作步骤

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

注意:

在开始本地代码开发前,请确保您的本地环境为 Java 环境。

  1. 安装 UDF 开发插件

  2. 在本地 Java 环境中按照 MaxCompute UDF 框架 编写 Java 代码实现函数,本示例的代码如下所示:

    1. package test_UDF;
    2. import com.aliyun.odps.udf.UDF;
    3. public class test_UDF extends UDF {
    4. public String evaluate(String s) {
    5. if (s == null) { return null; }
    6. return s.toLowerCase();
    7. }
    8. }
  3. 将以上代码编译成 Jar 包,您可以单击 my_lower.jar 下载已经编译好的 Jar 文件直接使用。

上传资源到 DataWorks

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

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

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

    1

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

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

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

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

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

    1

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

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

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

  1. select my_lower("A") from dual ;

注意:

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

单击 1运行,查看结果。

1

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

FAQ

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