Class AbstractExternalTwoInputPythonFunctionOperator<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.process.AbstractExternalPythonFunctionOperator<OUT>
org.apache.flink.streaming.api.operators.python.process.AbstractExternalDataStreamPythonFunctionOperator<OUT>
org.apache.flink.streaming.api.operators.python.process.AbstractExternalTwoInputPythonFunctionOperator<IN1,IN2,OUT>
- All Implemented Interfaces:
Serializable,org.apache.flink.api.common.state.CheckpointListener,org.apache.flink.api.java.typeutils.ResultTypeQueryable<OUT>,org.apache.flink.streaming.api.operators.BoundedMultiInput,org.apache.flink.streaming.api.operators.KeyContext,org.apache.flink.streaming.api.operators.KeyContextHandler,DataStreamPythonFunctionOperator<OUT>,org.apache.flink.streaming.api.operators.StreamOperator<OUT>,org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.CheckpointedStreamOperator,org.apache.flink.streaming.api.operators.TwoInputStreamOperator<IN1,,IN2, OUT> org.apache.flink.streaming.api.operators.YieldingOperator<OUT>
- Direct Known Subclasses:
ExternalPythonCoProcessOperator,ExternalPythonKeyedCoProcessOperator
@Internal
public abstract class AbstractExternalTwoInputPythonFunctionOperator<IN1,IN2,OUT>
extends AbstractExternalDataStreamPythonFunctionOperator<OUT>
implements org.apache.flink.streaming.api.operators.TwoInputStreamOperator<IN1,IN2,OUT>, org.apache.flink.streaming.api.operators.BoundedMultiInput
AbstractExternalTwoInputPythonFunctionOperator is responsible for launching beam runner
which will start a python harness to execute two-input user defined python function.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.apache.flink.core.memory.ByteArrayOutputStreamWithPosprotected org.apache.flink.core.memory.DataOutputViewStreamWrapperFields inherited from class org.apache.flink.streaming.api.operators.python.process.AbstractExternalPythonFunctionOperator
pythonFunctionRunnerFields inherited from class org.apache.flink.streaming.api.operators.python.AbstractPythonFunctionOperator
bundleFinishedCallback, config, elementCount, lastFinishBundleTime, maxBundleSize, systemEnvEnabledFields inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
combinedWatermark, lastRecordAttributes1, lastRecordAttributes2, latencyStats, LOG, metrics, output, processingTimeService, stateHandler, stateKeySelector1, stateKeySelector2, timeServiceManager -
Constructor Summary
ConstructorsConstructorDescriptionAbstractExternalTwoInputPythonFunctionOperator(org.apache.flink.configuration.Configuration config, DataStreamPythonFunctionInfo pythonFunctionInfo, org.apache.flink.api.common.typeinfo.TypeInformation<IN1> inputTypeInfo1, org.apache.flink.api.common.typeinfo.TypeInformation<IN2> inputTypeInfo2, org.apache.flink.api.common.typeinfo.TypeInformation<OUT> outputTypeInfo) -
Method Summary
Modifier and TypeMethodDescriptionvoidemitResult(org.apache.flink.api.java.tuple.Tuple3<String, byte[], Integer> resultTuple) Sends the execution result to the downstream operator.voidendInput(int inputId) protected org.apache.flink.api.common.typeinfo.TypeInformation<IN1>protected org.apache.flink.api.common.typeinfo.TypeInformation<IN2>voidopen()voidprocessElement(boolean isLeft, long timestamp, long watermark, Object element) Methods inherited from class org.apache.flink.streaming.api.operators.python.process.AbstractExternalDataStreamPythonFunctionOperator
addSideOutputTags, createSideOutputCoderDescriptors, getInternalParameters, getOutputTagById, getProducedType, getPythonEnv, getPythonFunctionInfo, getSideOutputTags, getSideOutputTypeSerializerById, setNumPartitionsMethods inherited from class org.apache.flink.streaming.api.operators.python.process.AbstractExternalPythonFunctionOperator
close, createPythonEnvironmentManager, createPythonFunctionRunner, drainUnregisteredTimers, emitResults, invokeFinishBundleMethods inherited from class org.apache.flink.streaming.api.operators.python.AbstractPythonFunctionOperator
checkInvokeFinishBundleByCount, finish, getConfiguration, getFlinkMetricContainer, isBundleFinished, prepareSnapshotPreBarrier, processWatermark, setCurrentKeyMethods inherited from class org.apache.flink.streaming.api.operators.AbstractStreamOperator
beforeInitializeStateHandler, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getStateKeySelector1, getStateKeySelector2, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, initializeState, isAsyncStateProcessingEnabled, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processRecordAttributes, processRecordAttributes1, processRecordAttributes2, processWatermark, processWatermark1, processWatermark1, processWatermark2, processWatermark2, processWatermarkStatus, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setKeyContextElement1, setKeyContextElement2, setMailboxExecutor, setProcessingTimeService, setup, snapshotState, snapshotState, useSplittableTimersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.flink.api.common.state.CheckpointListener
notifyCheckpointAborted, notifyCheckpointCompleteMethods inherited from interface org.apache.flink.streaming.api.operators.python.DataStreamPythonFunctionOperator
copyMethods inherited from interface org.apache.flink.streaming.api.operators.KeyContext
getCurrentKey, setCurrentKeyMethods inherited from interface org.apache.flink.streaming.api.operators.KeyContextHandler
hasKeyContextMethods inherited from interface org.apache.flink.streaming.api.operators.StreamOperator
close, finish, getMetricGroup, getOperatorAttributes, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotStateMethods inherited from interface org.apache.flink.streaming.api.operators.TwoInputStreamOperator
processElement1, processElement2, processLatencyMarker1, processLatencyMarker2, processRecordAttributes1, processRecordAttributes2, processWatermark1, processWatermark1, processWatermark2, processWatermark2, processWatermarkStatus1, processWatermarkStatus2
-
Field Details
-
baos
protected transient org.apache.flink.core.memory.ByteArrayOutputStreamWithPos baos -
baosWrapper
protected transient org.apache.flink.core.memory.DataOutputViewStreamWrapper baosWrapper
-
-
Constructor Details
-
AbstractExternalTwoInputPythonFunctionOperator
public AbstractExternalTwoInputPythonFunctionOperator(org.apache.flink.configuration.Configuration config, DataStreamPythonFunctionInfo pythonFunctionInfo, org.apache.flink.api.common.typeinfo.TypeInformation<IN1> inputTypeInfo1, org.apache.flink.api.common.typeinfo.TypeInformation<IN2> inputTypeInfo2, org.apache.flink.api.common.typeinfo.TypeInformation<OUT> outputTypeInfo)
-
-
Method Details
-
open
- Specified by:
openin interfaceorg.apache.flink.streaming.api.operators.StreamOperator<IN1>- Overrides:
openin classAbstractExternalDataStreamPythonFunctionOperator<OUT>- Throws:
Exception
-
endInput
- Specified by:
endInputin interfaceorg.apache.flink.streaming.api.operators.BoundedMultiInput- Throws:
Exception
-
emitResult
public void emitResult(org.apache.flink.api.java.tuple.Tuple3<String, byte[], throws ExceptionInteger> resultTuple) Description copied from class:AbstractExternalPythonFunctionOperatorSends the execution result to the downstream operator.- Specified by:
emitResultin classAbstractExternalPythonFunctionOperator<OUT>- Throws:
Exception
-
processElement
public void processElement(boolean isLeft, long timestamp, long watermark, Object element) throws Exception - Throws:
Exception
-
createInputCoderInfoDescriptor
-
createOutputCoderInfoDescriptor
-
getLeftInputType
-
getRightInputType
-