Каталог

API каталога, доступный для SparkSession.catalogпользователей. Это тонкая оболочка вокруг своей реализации org.apache.spark.sql.catalog.CatalogScala.

Синтаксис

# Access through SparkSession
spark.catalog

Методы

Метод Описание
currentCatalog() Возвращает текущий каталог по умолчанию в этом сеансе.
setCurrentCatalog(catalogName) Задает текущий каталог по умолчанию в этом сеансе.
listCatalogs(pattern) Возвращает список каталогов в этом сеансе.
currentDatabase() Возвращает текущую базу данных по умолчанию в этом сеансе.
setCurrentDatabase(dbName) Задает текущую базу данных по умолчанию в этом сеансе.
listDatabases(pattern) Возвращает список баз данных, доступных во всех сеансах.
getDatabase(dbName) Возвращает базу данных с указанным именем. Создает исключение AnalysisException, если не удается найти базу данных.
databaseExists(dbName) Проверяет, существует ли база данных с указанным именем.
listTables(dbName, pattern) Возвращает список таблиц и представлений в указанной базе данных. Включает все временные представления.
getTable(tableName) Возвращает таблицу или представление с указанным именем. Создает исключение AnalysisException, если таблица не найдена.
tableExists(tableName, dbName) Проверяет, существует ли таблица или представление с указанным именем.
listColumns(tableName, dbName) Возвращает список столбцов для заданной таблицы или представления в указанной базе данных.
listFunctions(dbName, pattern) Возвращает список функций, зарегистрированных в указанной базе данных. Включает все временные функции.
functionExists(functionName, dbName) Проверяет, существует ли функция с указанным именем. Включает временные функции.
getFunction(functionName) Возвращает функцию с указанным именем. Создает исключение AnalysisException, когда не удается найти функцию.
createTable(tableName, path, source, schema, description, **options) Создает таблицу на основе набора данных в источнике данных и возвращает связанный кадр данных.
dropTempView(viewName) Удаляет локальное временное представление с заданным именем. Кроме того, распаковывает представление, если оно было кэшировано.
dropGlobalTempView(viewName) Удаляет глобальное временное представление с заданным именем. Кроме того, распаковывает представление, если оно было кэшировано.
isCached(tableName) Возвращает значение true, если таблица в настоящее время кэшируется в памяти.
cacheTable(tableName, storageLevel) Кэширует указанную таблицу в памяти или с заданным уровнем хранилища. По умолчанию используется MEMORY_AND_DISK.
uncacheTable(tableName) Удаляет указанную таблицу из кэша в памяти.
clearCache() Удаляет все кэшированные таблицы из кэша в памяти.
refreshTable(tableName) Отменяет и обновляет все кэшированные данные и метаданные данной таблицы.
recoverPartitions(tableName) Восстанавливает все разделы данной таблицы и обновляет каталог. Работает только с секционированных таблицами.
refreshByPath(path) Отменяет и обновляет все кэшированные данные и метаданные для любого кадра данных, содержащего заданный путь к источнику данных.

Примеры

spark.catalog.currentDatabase()
'default'
spark.catalog.listDatabases()
[Database(name='default', catalog='spark_catalog', description='default database', ...)]
_ = spark.sql("CREATE TABLE tbl1 (name STRING, age INT) USING parquet")
spark.catalog.tableExists("tbl1")
True
spark.catalog.cacheTable("tbl1")
spark.catalog.isCached("tbl1")
True
spark.catalog.uncacheTable("tbl1")
spark.catalog.isCached("tbl1")
False