Katalog

Rozhraní API katalogu přístupné uživatelům, přístupné prostřednictvím SparkSession.catalogrozhraní . Jedná se o tenký obálka kolem jeho implementace org.apache.spark.sql.catalog.CatalogScala .

Syntaxe

# Access through SparkSession
spark.catalog

Methods

Metoda Description
currentCatalog() Vrátí aktuální výchozí katalog v této relaci.
setCurrentCatalog(catalogName) Nastaví aktuální výchozí katalog v této relaci.
listCatalogs(pattern) Vrátí seznam katalogů v této relaci.
currentDatabase() Vrátí aktuální výchozí databázi v této relaci.
setCurrentDatabase(dbName) Nastaví aktuální výchozí databázi v této relaci.
listDatabases(pattern) Vrátí seznam databází dostupných napříč všemi relacemi.
getDatabase(dbName) Získá databázi se zadaným názvem. Vyvolá výjimku AnalysisException, pokud nelze najít databázi.
databaseExists(dbName) Zkontroluje, jestli databáze se zadaným názvem existuje.
listTables(dbName, pattern) Vrátí seznam tabulek a zobrazení v zadané databázi. Zahrnuje všechna dočasná zobrazení.
getTable(tableName) Získá tabulku nebo zobrazení se zadaným názvem. Vyvolá výjimku AnalysisException, pokud nelze najít žádnou tabulku.
tableExists(tableName, dbName) Zkontroluje, jestli tabulka nebo zobrazení se zadaným názvem existuje.
listColumns(tableName, dbName) Vrátí seznam sloupců pro danou tabulku nebo zobrazení v zadané databázi.
listFunctions(dbName, pattern) Vrátí seznam funkcí registrovaných v zadané databázi. Zahrnuje všechny dočasné funkce.
functionExists(functionName, dbName) Zkontroluje, jestli funkce se zadaným názvem existuje. Zahrnuje dočasné funkce.
getFunction(functionName) Získá funkci se zadaným názvem. Vyvolá výjimku AnalysisException, pokud funkci nelze najít.
createTable(tableName, path, source, schema, description, **options) Vytvoří tabulku založenou na datové sadě ve zdroji dat a vrátí přidružený datový rámec.
dropTempView(viewName) Zahodí místní dočasné zobrazení s daným názvem. Také zruší mezipaměť zobrazení, pokud byla uložena do mezipaměti.
dropGlobalTempView(viewName) Zahodí globální dočasné zobrazení s daným názvem. Také zruší mezipaměť zobrazení, pokud byla uložena do mezipaměti.
isCached(tableName) Vrátí hodnotu true, pokud je tabulka aktuálně uložena v mezipaměti v paměti.
cacheTable(tableName, storageLevel) Ukládá do mezipaměti zadanou tabulku v paměti nebo s danou úrovní úložiště. Výchozí hodnota je MEMORY_AND_DISK.
uncacheTable(tableName) Odebere zadanou tabulku z mezipaměti v paměti.
clearCache() Odebere všechny tabulky uložené v mezipaměti v paměti.
refreshTable(tableName) Zruší platnost a aktualizuje všechna data a metadata v mezipaměti dané tabulky.
recoverPartitions(tableName) Obnoví všechny oddíly dané tabulky a aktualizuje katalog. Funguje jenom s dělenými tabulkami.
refreshByPath(path) Zneplatní a aktualizuje všechna data a metadata mezipaměti pro libovolný datový rámec obsahující danou cestu ke zdroji dat.

Příklady

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