Class AbstractTwoInputEmbeddedPythonFunctionOperator<IN1,IN2,OUT>
- java.lang.Object
-
- org.apache.flink.streaming.api.operators.AbstractStreamOperator<OUT>
-
- org.apache.flink.streaming.api.operators.python.AbstractPythonFunctionOperator<OUT>
-
- org.apache.flink.streaming.api.operators.python.embedded.AbstractEmbeddedPythonFunctionOperator<OUT>
-
- org.apache.flink.streaming.api.operators.python.embedded.AbstractEmbeddedDataStreamPythonFunctionOperator<OUT>
-
- org.apache.flink.streaming.api.operators.python.embedded.AbstractTwoInputEmbeddedPythonFunctionOperator<IN1,IN2,OUT>
-
- All Implemented Interfaces:
Serializable
,CheckpointListener
,ResultTypeQueryable<OUT>
,BoundedMultiInput
,KeyContext
,KeyContextHandler
,DataStreamPythonFunctionOperator<OUT>
,StreamOperator<OUT>
,StreamOperatorStateHandler.CheckpointedStreamOperator
,TwoInputStreamOperator<IN1,IN2,OUT>
,YieldingOperator<OUT>
- Direct Known Subclasses:
EmbeddedPythonCoProcessOperator
,EmbeddedPythonKeyedCoProcessOperator
@Internal public abstract class AbstractTwoInputEmbeddedPythonFunctionOperator<IN1,IN2,OUT> extends AbstractEmbeddedDataStreamPythonFunctionOperator<OUT> implements TwoInputStreamOperator<IN1,IN2,OUT>, BoundedMultiInput
AbstractTwoInputEmbeddedPythonFunctionOperator
is responsible for run Python DataStream operators with two input user defined python function in Embedded Python environment.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected long
timestamp
-
Fields inherited from class org.apache.flink.streaming.api.operators.python.embedded.AbstractEmbeddedDataStreamPythonFunctionOperator
collector, hasSideOutput, outputTypeInfo, sideOutputContext
-
Fields inherited from class org.apache.flink.streaming.api.operators.python.embedded.AbstractEmbeddedPythonFunctionOperator
interpreter
-
Fields inherited from class org.apache.flink.streaming.api.operators.python.AbstractPythonFunctionOperator
bundleFinishedCallback, config, elementCount, lastFinishBundleTime, maxBundleSize, systemEnvEnabled
-
Fields inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
lastRecordAttributes1, lastRecordAttributes2, latencyStats, LOG, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager
-
-
Constructor Summary
Constructors Constructor Description AbstractTwoInputEmbeddedPythonFunctionOperator(Configuration config, DataStreamPythonFunctionInfo pythonFunctionInfo, TypeInformation<IN1> inputTypeInfo1, TypeInformation<IN2> inputTypeInfo2, TypeInformation<OUT> outputTypeInfo)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
This method is called at the very end of the operator's life, both in the case of a successful completion of the operation, and in the case of a failure and canceling.abstract List<FlinkFnApi.UserDefinedDataStreamFunction>
createUserDefinedFunctionsProto()
Gets the proto representation of the Python user-defined functions to be executed.void
endInput(int inputId)
It is notified that no more data will arrive from the input identified by theinputId
.abstract Object
getFunctionContext()
Gets The function context.abstract Object
getTimerContext()
Gets The Timer context.void
open()
This method is called immediately before any elements are processed, it should contain the operator's initialization logic, e.g. state initialization.void
openPythonInterpreter()
Setup method for Python Interpreter.void
processElement1(StreamRecord<IN1> element)
Processes one element that arrived on the first input of this two-input operator.void
processElement2(StreamRecord<IN2> element)
Processes one element that arrived on the second input of this two-input operator.-
Methods inherited from class org.apache.flink.streaming.api.operators.python.embedded.AbstractEmbeddedDataStreamPythonFunctionOperator
addSideOutputTags, getJobParameters, getProducedType, getPythonFunctionInfo, getSideOutputTags, setNumPartitions
-
Methods inherited from class org.apache.flink.streaming.api.operators.python.embedded.AbstractEmbeddedPythonFunctionOperator
createPythonEnvironmentManager, invokeFinishBundle
-
Methods inherited from class org.apache.flink.streaming.api.operators.python.AbstractPythonFunctionOperator
checkInvokeFinishBundleByCount, finish, getConfiguration, getFlinkMetricContainer, isBundleFinished, prepareSnapshotPreBarrier, processWatermark, setCurrentKey
-
Methods inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, setup, snapshotState, snapshotState, useSplittableTimers
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.flink.api.common.state.CheckpointListener
notifyCheckpointAborted, notifyCheckpointComplete
-
Methods inherited from interface org.apache.flink.streaming.api.operators.python.DataStreamPythonFunctionOperator
copy
-
Methods inherited from interface org.apache.flink.streaming.api.operators.KeyContext
getCurrentKey, setCurrentKey
-
Methods inherited from interface org.apache.flink.streaming.api.operators.KeyContextHandler
hasKeyContext
-
Methods inherited from interface org.apache.flink.streaming.api.operators.StreamOperator
finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
-
Methods inherited from interface org.apache.flink.streaming.api.operators.TwoInputStreamOperator
processLatencyMarker1, processLatencyMarker2, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark2, processWatermarkStatus1, processWatermarkStatus2
-
-
-
-
Constructor Detail
-
AbstractTwoInputEmbeddedPythonFunctionOperator
public AbstractTwoInputEmbeddedPythonFunctionOperator(Configuration config, DataStreamPythonFunctionInfo pythonFunctionInfo, TypeInformation<IN1> inputTypeInfo1, TypeInformation<IN2> inputTypeInfo2, TypeInformation<OUT> outputTypeInfo)
-
-
Method Detail
-
open
public void open() throws Exception
Description copied from class:AbstractStreamOperator
This method is called immediately before any elements are processed, it should contain the operator's initialization logic, e.g. state initialization.The default implementation does nothing.
- Specified by:
open
in interfaceStreamOperator<IN1>
- Overrides:
open
in classAbstractEmbeddedDataStreamPythonFunctionOperator<OUT>
- Throws:
Exception
- An exception in this method causes the operator to fail.
-
openPythonInterpreter
public void openPythonInterpreter()
Description copied from class:AbstractEmbeddedPythonFunctionOperator
Setup method for Python Interpreter.- Specified by:
openPythonInterpreter
in classAbstractEmbeddedPythonFunctionOperator<OUT>
-
endInput
public void endInput(int inputId) throws Exception
Description copied from interface:BoundedMultiInput
It is notified that no more data will arrive from the input identified by theinputId
. TheinputId
is numbered starting from 1, and `1` indicates the first input.WARNING: It is not safe to use this method to commit any transactions or other side effects! You can use this method to e.g. flush data buffered for the given input or implement an ordered reading from multiple inputs via
InputSelectable
.- Specified by:
endInput
in interfaceBoundedMultiInput
- Throws:
Exception
-
close
public void close() throws Exception
Description copied from interface:StreamOperator
This method is called at the very end of the operator's life, both in the case of a successful completion of the operation, and in the case of a failure and canceling.This method is expected to make a thorough effort to release all resources that the operator has acquired.
NOTE:It can not emit any records! If you need to emit records at the end of processing, do so in the
StreamOperator.finish()
method.- Specified by:
close
in interfaceStreamOperator<IN1>
- Overrides:
close
in classAbstractEmbeddedPythonFunctionOperator<OUT>
- Throws:
Exception
-
processElement1
public void processElement1(StreamRecord<IN1> element) throws Exception
Description copied from interface:TwoInputStreamOperator
Processes one element that arrived on the first input of this two-input operator. This method is guaranteed to not be called concurrently with other methods of the operator.- Specified by:
processElement1
in interfaceTwoInputStreamOperator<IN1,IN2,OUT>
- Throws:
Exception
-
processElement2
public void processElement2(StreamRecord<IN2> element) throws Exception
Description copied from interface:TwoInputStreamOperator
Processes one element that arrived on the second input of this two-input operator. This method is guaranteed to not be called concurrently with other methods of the operator.- Specified by:
processElement2
in interfaceTwoInputStreamOperator<IN1,IN2,OUT>
- Throws:
Exception
-
createUserDefinedFunctionsProto
public abstract List<FlinkFnApi.UserDefinedDataStreamFunction> createUserDefinedFunctionsProto()
Gets the proto representation of the Python user-defined functions to be executed.
-
getFunctionContext
public abstract Object getFunctionContext()
Gets The function context.
-
getTimerContext
public abstract Object getTimerContext()
Gets The Timer context.
-
-