python3UDAF在odps创建并使用

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

select zbSum(id) from allu;

这样就可以了。


版权声明:本文为qq_36924696原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。