@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.Modifier and Type | Field and Description |
---|---|
protected long |
timestamp |
collector, hasSideOutput, outputTypeInfo, sideOutputContext
interpreter
bundleFinishedCallback, config, elementCount, lastFinishBundleTime, maxBundleSize, systemEnvEnabled
chainingStrategy, latencyStats, LOG, metrics, output, processingTimeService
Constructor and Description |
---|
AbstractTwoInputEmbeddedPythonFunctionOperator(Configuration config,
DataStreamPythonFunctionInfo pythonFunctionInfo,
TypeInformation<IN1> inputTypeInfo1,
TypeInformation<IN2> inputTypeInfo2,
TypeInformation<OUT> outputTypeInfo) |
Modifier and Type | Method and 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 the
inputId . |
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.
|
addSideOutputTags, getJobParameters, getProducedType, getPythonFunctionInfo, getSideOutputTags, setNumPartitions
createPythonEnvironmentManager, invokeFinishBundle
checkInvokeFinishBundleByCount, finish, getConfiguration, getFlinkMetricContainer, isBundleFinished, prepareSnapshotPreBarrier, processWatermark, setCurrentKey
getChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, hasKeyContext1, hasKeyContext2, initializeState, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService, setup, snapshotState, snapshotState
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2, processWatermarkStatus1, processWatermarkStatus2
finish, getMetricGroup, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotState
notifyCheckpointAborted, notifyCheckpointComplete
getCurrentKey, setCurrentKey
copy
hasKeyContext
public AbstractTwoInputEmbeddedPythonFunctionOperator(Configuration config, DataStreamPythonFunctionInfo pythonFunctionInfo, TypeInformation<IN1> inputTypeInfo1, TypeInformation<IN2> inputTypeInfo2, TypeInformation<OUT> outputTypeInfo)
public void open() throws Exception
AbstractStreamOperator
The default implementation does nothing.
open
in interface StreamOperator<OUT>
open
in class AbstractEmbeddedDataStreamPythonFunctionOperator<OUT>
Exception
- An exception in this method causes the operator to fail.public void openPythonInterpreter()
AbstractEmbeddedPythonFunctionOperator
openPythonInterpreter
in class AbstractEmbeddedPythonFunctionOperator<OUT>
public void endInput(int inputId) throws Exception
BoundedMultiInput
inputId
. The inputId
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
.
endInput
in interface BoundedMultiInput
Exception
public void close() throws Exception
StreamOperator
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.
close
in interface StreamOperator<OUT>
close
in class AbstractEmbeddedPythonFunctionOperator<OUT>
Exception
public void processElement1(StreamRecord<IN1> element) throws Exception
TwoInputStreamOperator
processElement1
in interface TwoInputStreamOperator<IN1,IN2,OUT>
Exception
public void processElement2(StreamRecord<IN2> element) throws Exception
TwoInputStreamOperator
processElement2
in interface TwoInputStreamOperator<IN1,IN2,OUT>
Exception
public abstract List<FlinkFnApi.UserDefinedDataStreamFunction> createUserDefinedFunctionsProto()
public abstract Object getFunctionContext()
public abstract Object getTimerContext()
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.