开发者社区 问答 正文

MaxCompute用户指南:常用命令:函数操作



您如果想对函数进行操作,既可以通过客户端使用常用命令进行相关操作,也可以通过大数据开发套件中可视化的在线数据开发工具对资源进行新建、搜索等操作,详情请参见 文件目录 中的函数管模块。
本文将为您介绍如何通过客户端使用常用命令对函数进行操作。

注册函数


命令格式如下:

  1. CREATE FUNCTION <function_name> AS <package_to_class> USING <resource_list>;

参数说明:

  • function_name:UDF 函数名,这个名字就是 SQL 中引用该函数所使用的名字。

  • package_to_class:如果是 Java UDF,这个名字就是从顶层包名一直到实现 UDF 类名的 fully qualified class name,且必须使用引号。

  • resource_list:UDF 所用到的资源列表。
    此资源列表必须包括 UDF 代码所在的资源。

  • 如果您的代码中通过 distributed cache 接口读取资源文件,此列表中还要包括 UDF 所读取的资源文件列表。

  • 资源列表由多个资源名组成,资源名之间由逗号分隔,且资源列表必须用引号引起来。

示例如下:
假设 Java UDF 类 org.alidata.odps.udf.examples.Lower 在 my_lower.jar 中,创建函数 my_lower,如下所示:
  1. CREATE FUNCTION test_lower AS 'org.alidata.odps.udf.examples.Lower'
  2.     USING 'my_lower.jar';

注意:

  • 与资源文件一样,同名函数只能注册一次。

  • 一般情况下,您的自建函数无法覆盖系统内建函数。只有项目空间的 Owner 才有权利覆盖内建函数。如果您使用了覆盖内建函数的自定义函数,在 SQL 执行结束后,会在 Summary 中打印出 warning 信息。


注销函数


命令格式如下:
  1. DROP FUNCTION <function_name>;

示例如下:
  1. DROP FUNCTION test_lower;


查看函数清单


命令格式如下:
  1. list functions;                  --查看当前项目空间中的所有的自定义函数
  2. ls functions -p my_project;      --查看指定项目空间 my_project 下的所有自定义函数

展开
收起
行者武松 2017-10-23 15:24:02 2254 分享 版权
阿里云 AI 助理回答

您提到的操作是关于在大数据处理平台中,尤其是像阿里云MaxCompute(原名ODPS)这样的服务上,如何管理用户自定义函数(UDF)的过程。MaxCompute是一个大规模数据处理和分析的服务,支持SQL、MapReduce等多种编程模型,而用户自定义函数则允许开发者扩展其数据处理能力,实现特定的业务逻辑。

注册函数

通过CREATE FUNCTION命令,您可以将自己编写的函数注册到MaxCompute项目空间中,以便在SQL查询或数据处理任务中调用。您的示例展示了如何注册一个Java编写的UDF:

CREATE FUNCTION test_lower AS 'org.alidata.odps.udf.examples.Lower' USING 'my_lower.jar';

这里,test_lower是您给函数起的名字,org.alidata.odps.udf.examples.Lower是该Java UDF的完全限定类名,my_lower.jar则是包含这个类的资源文件。确保这个JAR包已经上传到了MaxCompute的指定资源目录中。

注销函数

当不再需要某个自定义函数时,可以使用DROP FUNCTION命令将其从项目空间中移除:

DROP FUNCTION test_lower;

这会删除名为test_lower的函数,之后在SQL查询中不能再调用它。

查看函数清单

要查看当前项目空间中所有已注册的自定义函数,或者查看指定项目空间中的自定义函数,可以使用以下命令:

list functions;          -- 查看当前项目空间中的所有自定义函数
ls functions -p my_project;  -- 查看项目空间my_project下的所有自定义函数

这些操作均可以通过MaxCompute客户端工具如odpscmd执行,也可以在阿里云DataWorks(原Data IDE)的在线数据开发界面中完成,后者提供了更加直观和便捷的图形化操作界面。

请注意,操作函数时,特别是覆盖系统内建函数,应当谨慎进行,并且只有项目空间Owner有此权限。正确管理和使用UDF能显著提升数据分析的灵活性和效率。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答