UnresolvedRelation Logical Operator¶
UnresolvedRelation
is a leaf logical operator with a name (as a NamedRelation) that represents a named relation that has yet to be looked up in a catalog at analysis.
UnresolvedRelation
is never resolved and has to be replaced using ResolveRelations logical resolution rule.
Creating Instance¶
UnresolvedRelation
takes the following to be created:
- Multi-part identifier
- Options
-
isStreaming
flag (default:false
)
UnresolvedRelation
is created (possibly indirectly using apply factory) when:
AstBuilder
is requested to parse TABLE statement and table name, and create an UnresolvedRelation- DataFrameReader.table operator is used
- DataFrameWriterV2 operators are used:
DataStreamReader.table
(Spark Structured Streaming) operator is usedSparkConnectPlanner
is requested to transformReadRel- table (Catalyst DSL) operator is used
Creating UnresolvedRelation¶
apply(
tableIdentifier: TableIdentifier): UnresolvedRelation
apply(
tableIdentifier: TableIdentifier,
extraOptions: CaseInsensitiveStringMap,
isStreaming: Boolean): UnresolvedRelation
apply
creates an UnresolvedRelation.
apply
is used when:
- DataFrameWriter.insertInto operator is used
- SparkSession.table operator is used
Name¶
name
is quoted multi-part dot-separated table name.
Quoted Multi-Part Dot-Separated Table Name¶
tableName: String
tableName
is a quoted multi-part .
-separated multipartIdentifier.
resolved¶
resolved
is disabled (false
).
nodePatterns¶
nodePatterns
is a single-element collection with UNRESOLVED_RELATION.