pyspark.sql.Catalog.tableExists

Catalog.tableExists(tableName: str, dbName: Optional[str] = None) → bool[source]

Check if the table or view with the specified name exists. This can either be a temporary view or a table/view.

New in version 3.3.0.

Parameters
tableNamestr

name of the table to check existence. If no database is specified, first try to treat tableName as a multi-layer-namespace identifier, then try tableName as a normal table name in the current database if necessary.

Changed in version 3.4.0: Allow tableName to be qualified with catalog name when dbName is None.

dbNamestr, optional

name of the database to check table existence in.

Returns
bool

Indicating whether the table/view exists

Examples

This function can check if a table is defined or not:

>>> spark.catalog.tableExists("unexisting_table")
False
>>> _ = spark.sql("DROP TABLE IF EXISTS tbl1")
>>> _ = spark.sql("CREATE TABLE tbl1 (name STRING, age INT) USING parquet")
>>> spark.catalog.tableExists("tbl1")
True

Using the fully qualified names for tables.

>>> spark.catalog.tableExists("default.tbl1")
True
>>> spark.catalog.tableExists("spark_catalog.default.tbl1")
True
>>> spark.catalog.tableExists("tbl1", "default")
True
>>> _ = spark.sql("DROP TABLE tbl1")

Check if views exist:

>>> spark.catalog.tableExists("view1")
False
>>> _ = spark.sql("CREATE VIEW view1 AS SELECT 1")
>>> spark.catalog.tableExists("view1")
True

Using the fully qualified names for views.

>>> spark.catalog.tableExists("default.view1")
True
>>> spark.catalog.tableExists("spark_catalog.default.view1")
True
>>> spark.catalog.tableExists("view1", "default")
True
>>> _ = spark.sql("DROP VIEW view1")

Check if temporary views exist:

>>> _ = spark.sql("CREATE TEMPORARY VIEW view1 AS SELECT 1")
>>> spark.catalog.tableExists("view1")
True
>>> df = spark.sql("DROP VIEW view1")
>>> spark.catalog.tableExists("view1")
False