1.首先我们写一个python UDAF的代码
from odps.udf import annotate, BaseUDAF
@annotate("bigint->bigint")
class ZbSum(BaseUDAF):
def new_buffer(self):
return [0];
def iterate(self,buffer,number):
if number is not None:
buffer[0] += number
def merge(self,buffer,pbuffer):
buffer[0] += pbuffer[0]
def terminate(self,buffer):
if buffer[0] == 0:
return 0
else:
return buffer[0]
注解:python代码需要下载odps相应的依赖包
2.在函数右边右键点击新建函数:
3.编辑新建函数:
类名是你的 资源名.要调用的函数
4.保存并提交
这样函数就创建好啦。之后我们直接在语句中调用这个就好了。
5.调用zbSum
这样就可以了。