您可以使用系统的内建函数或自定义函数(UDF)完成计算。内建函数可直接调用,自定义函数需要您自定义后才可调用。本文为您介绍如何注册、注销及查看自定义函数等常用函数操作。
函数操作常用命令如下。
类型 | 功能 | 角色 | 操作入口 |
---|---|---|---|
注册函数 | 在MaxCompute项目空间中注册自定义函数。 | 具备更新函数权限(Write)的用户。 | 本文中的命令您可以在如下工具平台执行: |
注销函数 | 在MaxCompute项目空间中注销已注册的自定义函数。 | 具备注销函数权限(Delete)的用户。 | |
查看函数 | 查看MaxCompute项目空间中指定函数的信息。 | 具备查看函数权限(Read)的用户。 | |
查看函数列表 | 查看MaxCompute项目空间中所有自定义函数的信息。 | 具备查看项目空间对象列表权限(List)的用户。 |
注册函数
在MaxCompute项目空间中注册自定义函数。
- 使用限制
- 函数名称全局唯一,同名函数只能注册一次。
- 自定义函数无法覆盖系统内建函数。只有项目空间Owner才有权利覆盖内建函数。如果您使用了覆盖内建函数的自定义函数,在SQL执行结束后,会在作业相应Logview的Summary中打印出Warning信息。
- 命令格式
create function <function_name> as <'package_to_class'> using <'resource_list'>;
- 参数说明
- function_name:必填。新建的UDF名称。
- package_to_class:必填。包名,此名称须用英文引号(' ')引起来。
- Java UDF:此名称为从顶层包名一直到实现UDF类的类名。
- Python UDF:此名称为Python脚本名.类名。
- resource_list:必填。UDF所用到的资源列表。
- 此资源列表必须包括UDF代码所在的资源,且资源已经上传至MaxCompute。
- 如果您的代码通过Distributed Cache接口读取资源文件,此列表中还要包括UDF所读取的资源文件列表。
- 资源列表由多个资源名组成,资源名之间用英文逗号(,)分隔,且资源列表必须用英文引号(' ')引起来。
- 如果需要指定资源所在的项目空间,格式为
<project_name>/resources/<resource_name>
。
- 使用示例
- 示例1:创建函数
my_lower
。假设Java UDF类org.alidata.odps.udf.examples.Lower
在my_lower.jar中。create function my_lower as 'org.alidata.odps.udf.examples.Lower' using 'my_lower.jar';
- 示例2:创建函数
my_lower
。假设Python UDF类MyLower在项目空间test_project
的脚本pyudf_test.py中。create function my_lower as 'pyudf_test.MyLower' using 'test_project/resources/pyudf_test.py';
- 示例3:创建函数
test_udtf
。假设Java UDF类com.aliyun.odps.examples.udf.UDTFResource
是在udtfexample1.jar中,同时该函数还依赖FILE资源file_resource.txt、Table资源table_resource1以及Archive资源test_archive.zip。create function test_udtf as 'com.aliyun.odps.examples.udf.UDTFResource' using 'udtfexample1.jar, file_resource.txt, table_resource1, test_archive.zip';
- 示例1:创建函数
注销函数
在MaxCompute项目空间中注销已注册的自定义函数。
- 命令格式
drop function <function_name>;
- 参数说明
function_name:必填。已注册的函数名称。
- 使用示例
--注销my_lower函数。 drop function my_lower;
查看函数
查看MaxCompute项目空间中指定函数的信息,包含函数名称、所有者、创建时间、类名和资源列表信息。
- 命令格式
desc function <function_name>;
- 参数说明
function_name:必填。已存在的函数名称。
- 使用示例
返回结果如下。--查看函数my_lower的信息。 desc function my_lower;
Name my_lower Owner ALIYUN$**** Created Time 2020-06-18 15:50:19 Class org.alidata.odps.udf.examples.Lower Resources project_name/my_lower.jar
查看函数列表
查看MaxCompute项目空间中所有自定义函数的信息。
- 命令格式
list functions [-p <project_name>];
- 参数说明
project_name:可选。指定MaxCompute项目空间的名称。
- 使用示例
返回结果如下。list functions;
Name Owner Create Time Class Resources 0 functions
在文档使用中是否遇到以下问题
更多建议
匿名提交