天天看点

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.在函数右边右键点击新建函数:

python3UDAF在odps创建并使用

3.编辑新建函数:

python3UDAF在odps创建并使用

类名是你的 资源名.要调用的函数

4.保存并提交

python3UDAF在odps创建并使用

这样函数就创建好啦。之后我们直接在语句中调用这个就好了。

5.调用zbSum

这样就可以了。

继续阅读