AnalysisBarrier is a leaf logical operator that is a wrapper of an analyzed logical plan to hide it from the Spark Analyzer. The purpose of
AnalysisBarrier is to prevent the child logical plan from being analyzed again (and increasing the time spent on query analysis).
AnalysisBarrier is created when:
ResolveReferenceslogical resolution rule is requested to dedupRight
ResolveMissingReferenceslogical resolution rule is requested to resolveExprsAndAddMissingAttrs
DataFrameWriteris requested to execute a logical command for writing to a data source V1 (when
DataFrameWriteris requested to save the rows of a structured query (a DataFrame) to a data source)
KeyValueGroupedDatasetis requested for the logical query plan
AnalysisBarrier takes a single
child logical query plan when created.