LogicalQueryStage Leaf Logical Operator¶
LogicalQueryStage
is a leaf logical operator for Adaptive Query Execution.
Creating Instance¶
LogicalQueryStage
takes the following to be created:
LogicalQueryStage
is created when:
- AdaptiveSparkPlanExec physical operator is executed
Query Optimization¶
LogicalQueryStage
is a "target" of the following logical optimizations:
Query Planning¶
LogicalQueryStage
is planned by LogicalQueryStageStrategy execution planning strategy.
Computing Runtime Statistics¶
computeStats
tries to find the first QueryStageExec leaf physical operators in the physical plan that is then requested for the statistics.
computeStats
prints out the following DEBUG messages to the logs based on the availability of the statistics.
Physical stats available as [physicalStats] for plan: [physicalPlan]
Physical stats not available for plan: [physicalPlan]
In the end, computeStats
gives the statistics of the physical operator or requests the logical plan for them.
Logging¶
Enable ALL
logging level for org.apache.spark.sql.execution.adaptive.LogicalQueryStage
logger to see what happens inside.
Add the following line to conf/log4j2.properties
:
logger.LogicalQueryStage.name = org.apache.spark.sql.execution.adaptive.LogicalQueryStage
logger.LogicalQueryStage.level = all
Refer to Logging.