import org.apache.spark.sql.SparkSession
val spark: SparkSession = ...
scala> spark.catalog
lazy val catalog: org.apache.spark.sql.catalog.Catalog
scala> spark.catalog
res0: org.apache.spark.sql.catalog.Catalog = org.apache.spark.sql.internal.CatalogImpl@1b42eb0f
scala> spark.catalog.listTables.show
+------------------+--------+-----------+---------+-----------+
| name|database|description|tableType|isTemporary|
+------------------+--------+-----------+---------+-----------+
|my_permanent_table| default| null| MANAGED| false|
| strs| null| null|TEMPORARY| true|
+------------------+--------+-----------+---------+-----------+
scala> spark.catalog.clearCache
Catalog
Catalog
is the interface to work with a metastore, i.e. a data catalog of database(s), local and external tables, functions, table columns, and temporary views in Spark SQL.
You can access the current catalog using SparkSession.catalog attribute.
Note
|
The one and only Catalog in Spark SQL is CatalogImpl.
|
Catalog Contract
package org.apache.spark.sql.catalog
abstract class Catalog {
def cacheTable(tableName: String): Unit
def cacheTable(tableName: String, storageLevel: StorageLevel): Unit
def currentDatabase: String
def setCurrentDatabase(dbName: String): Unit
def listDatabases(): Dataset[Database]
def listTables(): Dataset[Table]
def listTables(dbName: String): Dataset[Table]
def listFunctions(): Dataset[Function]
def listFunctions(dbName: String): Dataset[Function]
def listColumns(tableName: String): Dataset[Column]
def listColumns(dbName: String, tableName: String): Dataset[Column]
def createExternalTable(tableName: String, path: String): DataFrame
def createExternalTable(tableName: String, path: String, source: String): DataFrame
def createExternalTable(
tableName: String,
source: String,
options: Map[String, String]): DataFrame
def createExternalTable(
tableName: String,
source: String,
schema: StructType,
options: Map[String, String]): DataFrame
def dropTempView(viewName: String): Unit
def isCached(tableName: String): Boolean
def uncacheTable(tableName: String): Unit
def clearCache(): Unit
def refreshTable(tableName: String): Unit
def refreshByPath(path: String): Unit
def functionExists(functionName: String): Boolean
def functionExists(dbName: String, functionName: String): Boolean
}
Method | Description |
---|---|
Caches the specified table in memory Used for SQL’s CACHE TABLE and |
|