ExtractPythonUDFs Logical Optimization¶
ExtractPythonUDFs
is a logical optimization (Rule[LogicalPlan]
) that "executes" (replaces) PythonUDFs as BaseEvalPythons.
Executing Rule¶
apply
finds operators with PYTHON_UDF tree pattern (with the children first and this operator next) and extract from the given LogicalPlan.
Skips correlated subqueries
apply
skips correlated subqueries.
extract¶
extract(
plan: LogicalPlan): LogicalPlan
extract
collects PythonUDFs (from the given LogicalPlan recursively) and rewrites them all to a single-type BaseEvalPython based on a PythonUDF
eval type.
BaseEvalPython | PythonUDF Eval Type |
---|---|
ArrowEvalPython | SQL_SCALAR_PANDAS_UDF or SQL_SCALAR_PANDAS_ITER_UDF |
BatchEvalPython | SQL_BATCHED_UDF |