昇腾社区首页
中文
注册

通过注解创建UDF

开发流程

通过注解进行UDF开发的流程如下图所示:

创建UDF

以实现add功能的函数为例,介绍如何通过注解dataflow.pyflowdataflow.method来创建一个UDF,请参考如下示例:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import dataflow as df

# 通过pyflow注解装饰普通函数,将普通函数构建为一个UDF
@df.pyflow()
def add(a, b):
    return a + b

# 通过pyflow注解装饰类,并使用method装饰类方法,将类方法构建为一个UDF
@df.pyflow
class Add():
    @df.method()
    def add(self, a, b):
        return a + b

构建FlowGraph

通过注解构造完UDF后,通过fnode方法构造FlowNode并参与FlowGraph图的构造,示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 定义输入
data0 = df.FlowData()
data1 = df.FlowData()

#定义FlowNode
flow_node0 = add.fnode()
flow_node1 = Add.fnode()

# 构建连边关系
flow_node0_out = flow_node0(data0, data1)
flow_node1_out = flow_node1.add(flow_node0_out, data1)

# 构建FlowGraph
dag = df.FlowGraph([flow_node1_out])