Inject an check analysis Rule
builder into the SparkSession.
Inject an check analysis Rule
builder into the SparkSession. The injected rules will
be executed after the analysis phase. A check analysis rule is used to detect problems with a
LogicalPlan and should throw an exception when a problem is found.
Inject an optimizer Rule
builder into the SparkSession.
Inject an optimizer Rule
builder into the SparkSession. The injected rules will be
executed during the operator optimization batch. An optimizer rule is used to improve the
quality of an analyzed logical plan; these rules should never modify the result of the
LogicalPlan.
Inject a custom parser into the SparkSession.
Inject a custom parser into the SparkSession. Note that the builder is passed a session and an initial parser. The latter allows for a user to create a partial parser and to delegate to the underlying parser for completeness. If a user injects more parsers, then the parsers are stacked on top of each other.
Inject a planner Strategy
builder into the SparkSession.
Inject a planner Strategy
builder into the SparkSession. The injected strategy will
be used to convert a LogicalPlan
into a executable
org.apache.spark.sql.execution.SparkPlan.
Inject an analyzer Rule
builder into the SparkSession.
Inject an analyzer Rule
builder into the SparkSession. These analyzer
rules will be executed after resolution.
Inject an analyzer resolution Rule
builder into the SparkSession.
Inject an analyzer resolution Rule
builder into the SparkSession. These analyzer
rules will be executed as part of the resolution phase of analysis.
:: Experimental :: Holder for injection points to the SparkSession. We make NO guarantee about the stability regarding binary compatibility and source compatibility of methods here.
This current provides the following extension points: - Analyzer Rules. - Check Analysis Rules - Optimizer Rules. - Planning Strategies. - Customized Parser. - (External) Catalog listeners.
The extensions can be used by calling withExtension on the SparkSession.Builder, for example:
Note that none of the injected builders should assume that the SparkSession is fully initialized and should not touch the session's internals (e.g. the SessionState).