Class BroadcastProcessFunction<IN1,IN2,OUT>
- Type Parameters:
IN1- The input type of the non-broadcast side.IN2- The input type of the broadcast side.OUT- The output type of the operator.
- All Implemented Interfaces:
Serializable,org.apache.flink.api.common.functions.Function,org.apache.flink.api.common.functions.RichFunction
BroadcastConnectedStream that
connects BroadcastStream, i.e.
a stream with broadcast state, with a non-keyed DataStream.
The stream with the broadcast state can be created using the DataStream.broadcast(MapStateDescriptor[])
stream.broadcast(MapStateDescriptor)} method.
The user has to implement two methods:
- the
#processBroadcastElement(Object, Context, Collector)which will be applied to each element in the broadcast side - and the
#processElement(Object, ReadOnlyContext, Collector)which will be applied to the non-broadcasted/keyed side.
The processElementOnBroadcastSide() takes as argument (among others) a context that
allows it to read/write to the broadcast state, while the processElement() has read-only
access to the broadcast state.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassAcontextavailable to the broadcast side of aBroadcastConnectedStream.classAcontextavailable to the non-keyed side of aBroadcastConnectedStream(if any). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidprocessBroadcastElement(IN2 value, BroadcastProcessFunction<IN1, IN2, OUT>.Context ctx, org.apache.flink.util.Collector<OUT> out) This method is called for each element in thebroadcast stream.abstract voidprocessElement(IN1 value, BroadcastProcessFunction<IN1, IN2, OUT>.ReadOnlyContext ctx, org.apache.flink.util.Collector<OUT> out) This method is called for each element in the (non-broadcast)data stream.Methods inherited from class org.apache.flink.api.common.functions.AbstractRichFunction
close, getIterationRuntimeContext, getRuntimeContext, open, setRuntimeContext
-
Constructor Details
-
BroadcastProcessFunction
public BroadcastProcessFunction()
-
-
Method Details
-
processElement
public abstract void processElement(IN1 value, BroadcastProcessFunction<IN1, IN2, throws ExceptionOUT>.ReadOnlyContext ctx, org.apache.flink.util.Collector<OUT> out) This method is called for each element in the (non-broadcast)data stream.This function can output zero or more elements using the
Collectorparameter, query the current processing/event time, and also query and update the local keyed state. Finally, it has read-only access to the broadcast state. The context is only valid during the invocation of this method, do not store it.- Parameters:
value- The stream element.ctx- ABroadcastProcessFunction<IN1,that allows querying the timestamp of the element, querying the current processing/event time and updating the broadcast state. The context is only valid during the invocation of this method, do not store it.IN2, OUT>.ReadOnlyContext out- The collector to emit resulting elements to- Throws:
Exception- The function may throw exceptions which cause the streaming program to fail and go into recovery.
-
processBroadcastElement
public abstract void processBroadcastElement(IN2 value, BroadcastProcessFunction<IN1, IN2, throws ExceptionOUT>.Context ctx, org.apache.flink.util.Collector<OUT> out) This method is called for each element in thebroadcast stream.This function can output zero or more elements using the
Collectorparameter, query the current processing/event time, and also query and update the internalbroadcast state. These can be done through the providedBroadcastProcessFunction<IN1,. The context is only valid during the invocation of this method, do not store it.IN2, OUT>.Context - Parameters:
value- The stream element.ctx- ABroadcastProcessFunction<IN1,that allows querying the timestamp of the element, querying the current processing/event time and updating the broadcast state. The context is only valid during the invocation of this method, do not store it.IN2, OUT>.Context out- The collector to emit resulting elements to- Throws:
Exception- The function may throw exceptions which cause the streaming program to fail and go into recovery.
-