UDF全称为User Defined Function,即用户自定义函数。
编写一个简单函数
首先登录DataWorks控制台
,
在左侧导航栏,单击工作空间列表,
单击相应工作空间后的进入数据开发。
新建Python资源。
右键单击业务流程,选择新建 > MaxCompute > 资源 > Python。
在新建资源对话框中,填写资源名称,并勾选上传为ODPS资源,单击确定。
在Pyodps资源中输入如下代码。
如下图
定义一个new-style class
,并实现evaluate方法,即可实现Python UDF。
如下
from odps.udf import annotate
@annotate("bigint,bigint->bigint")
class MyPlus(object):
def evaluate(self, arg0, arg1):
if None in (arg0, arg1):
return None
return arg0 + arg1
说明 Python UDF必须通过annotate指定函数签名。
单击提交。
新建函数
。
右键单击已创的业务流程,选择新建 > MaxCompute > 函数。
在新建函数对话框中,输入函数名称,单击提交。
编辑函数配置,单击提交并解锁。
SELECT MyPlus(id,gdp) as t
FROM pivot_test;
t |
---|
11 |
14 |
18 |
23 |
17 |
21 |
25 |
28 |