@Internal public abstract class AbstractPythonScalarFunctionOperator extends AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>
ScalarFunctions. It executes the
Python ScalarFunctions in separate Python execution environment.
The inputs are assumed as the following format: {{{ +------------------+--------------+ | forwarded fields | extra fields | +------------------+--------------+ }}}.
The Python UDFs may take input columns directly from the input row or the execution result of Java UDFs: 1) The input columns from the input row can be referred from the 'forwarded fields'; 2) The Java UDFs will be computed and the execution results can be referred from the 'extra fields'.
The outputs will be as the following format: {{{ +------------------+-------------------------+ | forwarded fields | scalar function results | +------------------+-------------------------+ }}}.
| 限定符和类型 | 字段和说明 |
|---|---|
protected int[] |
forwardedFields
The offset of the fields which should be forwarded.
|
protected org.apache.flink.table.data.utils.JoinedRowData |
reuseJoinedRow
The JoinedRowData reused holding the execution result.
|
protected StreamRecordRowDataWrappingCollector |
rowDataWrapper
The collector used to collect records.
|
protected org.apache.flink.table.functions.python.PythonFunctionInfo[] |
scalarFunctions
The Python
ScalarFunctions to be executed. |
bais, baisWrapper, baos, baosWrapper, forwardedInputQueue, inputType, outputType, userDefinedFunctionInputOffsets, userDefinedFunctionInputType, userDefinedFunctionOutputTypeconfig, elementCount, jobOptions, maxBundleSize, pythonConfig, pythonFunctionRunner| 构造器和说明 |
|---|
AbstractPythonScalarFunctionOperator(org.apache.flink.configuration.Configuration config,
org.apache.flink.table.functions.python.PythonFunctionInfo[] scalarFunctions,
org.apache.flink.table.types.logical.RowType inputType,
org.apache.flink.table.types.logical.RowType outputType,
int[] udfInputOffsets,
int[] forwardedFields) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
bufferInput(org.apache.flink.table.data.RowData input)
Buffers the specified input, it will be used to construct the operator result together with
the user-defined function execution result.
|
org.apache.flink.table.types.logical.RowType |
createUserDefinedFunctionOutputType() |
org.apache.flink.table.data.RowData |
getFunctionInput(org.apache.flink.table.data.RowData element) |
String |
getFunctionUrn() |
org.apache.flink.table.functions.python.PythonEnv |
getPythonEnv()
Returns the
PythonEnv used to create PythonEnvironmentManager.. |
FlinkFnApi.UserDefinedFunctions |
getUserDefinedFunctionsProto()
Gets the proto representation of the Python user-defined functions to be executed.
|
void |
open() |
createInputCoderInfoDescriptor, createOutputCoderInfoDescriptor, createPythonFunctionRunner, processElement, processElementInternalendInputcheckInvokeFinishBundleByCount, close, createPythonEnvironmentManager, emitResult, emitResults, finish, getConfiguration, getFlinkMetricContainer, invokeFinishBundle, isBundleFinished, prepareSnapshotPreBarrier, processWatermark, setConfiguration, setCurrentKeygetChainingStrategy, getContainingTask, getCurrentKey, getExecutionConfig, getInternalTimerService, getKeyedStateBackend, getKeyedStateStore, getMetricGroup, getOperatorConfig, getOperatorID, getOperatorName, getOperatorStateBackend, getOrCreateKeyedState, getPartitionedState, getPartitionedState, getProcessingTimeService, getRuntimeContext, getTimeServiceManager, getUserCodeClassloader, initializeState, initializeState, isUsingCustomRawKeyedState, notifyCheckpointAborted, notifyCheckpointComplete, processLatencyMarker, processLatencyMarker1, processLatencyMarker2, processWatermark1, processWatermark2, processWatermarkStatus, processWatermarkStatus1, processWatermarkStatus2, reportOrForwardLatencyMarker, setChainingStrategy, setKeyContextElement1, setKeyContextElement2, setProcessingTimeService, setup, snapshotState, snapshotStateclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclose, finish, getMetricGroup, getOperatorID, initializeState, prepareSnapshotPreBarrier, setKeyContextElement1, setKeyContextElement2, snapshotStateprotected final org.apache.flink.table.functions.python.PythonFunctionInfo[] scalarFunctions
ScalarFunctions to be executed.protected final int[] forwardedFields
protected transient StreamRecordRowDataWrappingCollector rowDataWrapper
protected transient org.apache.flink.table.data.utils.JoinedRowData reuseJoinedRow
public AbstractPythonScalarFunctionOperator(org.apache.flink.configuration.Configuration config,
org.apache.flink.table.functions.python.PythonFunctionInfo[] scalarFunctions,
org.apache.flink.table.types.logical.RowType inputType,
org.apache.flink.table.types.logical.RowType outputType,
int[] udfInputOffsets,
int[] forwardedFields)
public void open()
throws Exception
open 在接口中 org.apache.flink.streaming.api.operators.StreamOperator<org.apache.flink.table.data.RowData>open 在类中 AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>Exceptionpublic org.apache.flink.table.functions.python.PythonEnv getPythonEnv()
AbstractPythonFunctionOperatorPythonEnv used to create PythonEnvironmentManager..getPythonEnv 在类中 AbstractPythonFunctionOperator<org.apache.flink.table.data.RowData>public FlinkFnApi.UserDefinedFunctions getUserDefinedFunctionsProto()
getUserDefinedFunctionsProto 在类中 AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>public String getFunctionUrn()
getFunctionUrn 在类中 AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>public void bufferInput(org.apache.flink.table.data.RowData input)
AbstractStatelessFunctionOperatorbufferInput 在类中 AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>public org.apache.flink.table.data.RowData getFunctionInput(org.apache.flink.table.data.RowData element)
getFunctionInput 在类中 AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>public org.apache.flink.table.types.logical.RowType createUserDefinedFunctionOutputType()
createUserDefinedFunctionOutputType 在类中 AbstractStatelessFunctionOperator<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>Copyright © 2014–2022 The Apache Software Foundation. All rights reserved.