开发Python UDF

更新时间:
复制为 MD 格式

MaxCompute Studio支持Python UDF开发,本文为您介绍如何开发、测试和注册发布Python UDF。

前提条件

您必须完成以下操作:

开发Python UDF

  1. Project区域MaxCompute Studio目录下,右键单击scripts,选择New > MaxCompute Python
  2. Create new MaxCompute python class对话框中输入类名Name,选择类型为Python UDF,单击OK完成。
  3. 在编辑框中编写UDF代码。
    from odps.udf import annotate
    @annotate("bigint,bigint->bigint")
    class Hello(object):
        def evaluate(self, arg0, arg1):
            if None in (arg0,arg1):
                return None
            return arg0+arg1

测试UDF

UDF开发完成后,需要测试代码是否符合预期。MaxCompute Studio支持本地测试,即下载表的部分示例数据在本地运行并进行调试。

  1. 右键单击已经编辑完成的Python UDF脚本,选择RUN
  2. Edit configuration页面,配置相关参数,单击OK
    • MaxCompute project:UDF运行使用的MaxCompute空间。当您此前已完成管理项目连接中的MaxCompute项目连接后,此处会自动填充您已连接的项目。您也可以根据界面提示新增其他项目。
    • MaxCompute table:UDF运行时需要使用的MaxCompute表的名称。您可以在下拉框中选择上述选择的MaxCompute项目中的表。
    • Table columns:UDF运行时需要使用的MaxCompute表的列信息。
    • Download Record limit:下载数据记录限制。默认为100条。
    说明
    • 如果已经下载数据,则不会再次重复下载。如果需要再次下载,请在MaxCompute客户端使用Tunnel命令下载数据。
    • 默认下载100条数据,如果需要更多数据测试,请在MaxCompute客户端使用Tunnel命令或者MaxCompute Studio的表下载功能下载数据。
    • 下载完成后,您可以在warehouse目录下该表的data文件中看到下载的示例数据。
  3. 本地运行框架会根据您指定的列,获取data文件中指定列的数据,调用UDF本地运行。
    说明 本地运行是通过PyODPSpyou脚本实现的,命令为pyou hello.Plus<data。安装完PyODPS后可以使用相应的命令检查该脚本是否存在。
    • 如果您是Windows系统,请运行${python}/../Scripts/pyou命令。
    • 如果您是macOS系统,请运行${python}/../pyou命令。
  4. 以下为Python UDF源码示例,运行后您可以在控制台查看打印结果。
    from odps.udf import annotate
    @annotate("bigint,bigint->bigint")
    class Plus(object):
        def evaluate(self, arg0, arg1):
            if None in (arg0, arg1):
                return None
            return arg0 + arg1

发布Python UDF

Python UDF测试通过后,即可发布到生产环境上使用。详情请参见上传及注册