alterPartitions(
db: String,
table: String,
parts: Seq[CatalogTablePartition]): Unit
ExternalCatalog Contract — External Catalog (Metastore) of Permanent Relational Entities
ExternalCatalog
is the contract of an external system catalog (aka metadata registry or metastore) of permanent relational entities, i.e. databases, tables, partitions, and functions.
Feature | Database | Function | Partition | Table |
---|---|---|---|---|
Alter |
||||
Create |
||||
Drop |
||||
Get |
||||
List |
||||
Load |
||||
Rename |
||||
Check Existence |
||||
Set |
Method | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ExternalCatalog
is available as externalCatalog of SharedState (in SparkSession
).
scala> :type spark
org.apache.spark.sql.SparkSession
scala> :type spark.sharedState.externalCatalog
org.apache.spark.sql.catalyst.catalog.ExternalCatalog
ExternalCatalog
is available as ephemeral in-memory or persistent hive-aware.
ExternalCatalog | Alias | Description |
---|---|---|
A persistent system catalog using a Hive metastore. |
||
An in-memory (ephemeral) system catalog that does not require setting up external systems (like a Hive metastore). It is intended for testing or exploration purposes only and therefore should not be used in production. |
The concrete ExternalCatalog
is chosen using Builder.enableHiveSupport that enables the Hive support (and sets spark.sql.catalogImplementation configuration property to hive when the Hive classes are available).
import org.apache.spark.sql.internal.StaticSQLConf
val catalogType = spark.conf.get(StaticSQLConf.CATALOG_IMPLEMENTATION.key)
scala> println(catalogType)
hive
scala> spark.sessionState.conf.getConf(StaticSQLConf.CATALOG_IMPLEMENTATION)
res1: String = hive
Tip
|
Set
|
Important
|
You cannot change
|
ExternalCatalog
is a ListenerBus
of ExternalCatalogEventListener
listeners that handle ExternalCatalogEvent
events.
Tip
|
Use Read ListenerBus Event Bus Contract in Mastering Apache Spark 2 gitbook to learn more about Spark Core’s |
Altering Table Statistics — alterTableStats
Method
alterTableStats(db: String, table: String, stats: Option[CatalogStatistics]): Unit
alterTableStats
…FIXME
Note
|
alterTableStats is used exclusively when SessionCatalog is requested for altering the statistics of a table in a metastore (that can happen when any logical command is executed that could change the table statistics).
|
Altering Table — alterTable
Method
alterTable(tableDefinition: CatalogTable): Unit
alterTable
…FIXME
Note
|
alterTable is used exclusively when SessionCatalog is requested for altering the statistics of a table in a metastore.
|
createTable
Method
createTable(tableDefinition: CatalogTable, ignoreIfExists: Boolean): Unit
createTable
…FIXME
Note
|
createTable is used when…FIXME
|
alterTableDataSchema
Method
alterTableDataSchema(db: String, table: String, newDataSchema: StructType): Unit
alterTableDataSchema
…FIXME
Note
|
alterTableDataSchema is used exclusively when SessionCatalog is requested to alterTableDataSchema.
|