赞
踩
由代码理解,基本上与process(单词)相关的函数都叫处理函数。
高级的转换流函数,可以实现对数据进行更精确的处理的函数,有些可以获得暴露出的时间戳和水位线。
特点:
如果要使用ProcessFunction,需要该类继承抽象类ProcessFunction()方法并实现其中的抽象方法。
可以不进行Keyby之后使用,并对流中的每条元素都进行遍历以及操作。获取水位线以及定时,侧输出等操作。
package org.apache.flink.streaming.api.functions; import org.apache.flink.annotation.PublicEvolving; import org.apache.flink.api.common.functions.AbstractRichFunction; import org.apache.flink.streaming.api.TimeDomain; import org.apache.flink.streaming.api.TimerService; import org.apache.flink.util.Collector; import org.apache.flink.util.OutputTag; @PublicEvolving public abstract class ProcessFunction<I, O> extends AbstractRichFunction { private static final long serialVersionUID = 1L; public abstract void processElement(I value, Context ctx, Collector<O> out) throws Exception; public void onTimer(long timestamp, OnTimerContext ctx, Collector<O> out) throws Exception { } public abstract class Context { public abstract Long timestamp(); public abstract TimerService timerService(); public abstract <X> void output(OutputTag<X> outputTag, X value); } public abstract class OnTimerContext extends Context { public abstract TimeDomain timeDomain(); } }
特点:
源码如下:
package org.apache.flink.streaming.api.functions.co;
import org.apache.flink.annotation.PublicEvolving;
import org.apache.flink.api.common.functions.AbstractRichFunction;
import org
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。