flink中UDF函数
1 函数类(Function Classes)Flink 暴露了所有 udf 函数的接口(实现方式为接口或者抽象类)。例如MapFunction, FilterFunction, ProcessFunction 等等。下面例子实现了 FilterFunction 接口:还可以将函数实现成匿名类我们 filter 的字符串"flink"还可以当作参数传进去。2 匿名函数(Lambda Functio
·
1
函数类(
Function Classes
)
Flink
暴露了所有
udf
函数的接口
(
实现方式为接口或者抽象类
)
。例如
MapFunction, FilterFunction, ProcessFunction
等等。
下面例子实现了
FilterFunction
接口:
还可以将函数实现成匿名类
我们 filter 的字符串"flink"还可以当作参数传进去。
2 匿名函数(Lambda Functions)
3 富函数(Rich Functions)
“富函数”是
DataStream API
提供的一个函数类的接口,所有
Flink
函数类都
有其
Rich
版本。它与常规函数的不同在于,可以获取运行环境的上下文,并拥有一
些生命周期方法,所以可以实现更复杂的功能。
⚫
RichMapFunction
⚫
RichFlatMapFunction
⚫
RichFilterFunction
⚫
…
Rich Function
有一个生命周期的概念。典型的生命周期方法有:
⚫
open()
方法是
rich function
的初始化方法,当一个算子例如
map
或者
filter
被调用之前
open()
会被调用。
⚫
close()
方法是生命周期中的最后一个调用的方法,做一些清理工作。
⚫
getRuntimeContext()
方法提供了函数的
RuntimeContext
的一些信息,例如函
数执行的并行度,任务的名字,以及
state
状态
更多推荐
已为社区贡献1条内容
所有评论(0)