Как проверить, существует ли таблица Hive с помощью PySpark - PullRequest
2 голосов
/ 23 сентября 2019

Я хочу проверить, существует ли в Hive таблица schemaname.tablename с использованием pysparkSQL.

В Scala есть опция spark.catalog.tableExists ("schemaname.tablename"). Однако та же функциональность недоступначерез pySpark.

Ищете быстрый и понятный подход, чтобы проверить, существует ли таблица Hive с использованием PySpark

Ответы [ 3 ]

4 голосов
/ 23 сентября 2019

Вот еще несколько вариантов.Сначала давайте создадим некоторую случайную таблицу из произвольного df с df.write.saveAsTable("your_table").

Вариант 1 - Spark> = 2.0

Используя spark.catalog.listTables, то есть:

"your_table" in [t.name for t in spark.catalog.listTables("default")] == True 

Вариант 2 - Искра> = 1,3

Использование sqlContext.tableNames, т. Е .:

"your_table" in sqlContext.tableNames("default") == True

Вариант 3

Использование spark.sql т.е.:

spark.sql("SHOW TABLES LIKE 'your_table'").count() == 1
3 голосов
/ 23 сентября 2019

pyspark.sql.catalog модуль включен из spark> = 2.3.0

Если вы используете spark <2.3.0 </em>Вы можете использовать, как показано ниже:

spark._jsparkSession.catalog().tableExists("schema.table")
True

spark._jsparkSession.catalog().tableExists("schema.table_false")
False

или

spark.catalog._jcatalog.tableExists("schema.table")
True
3 голосов
/ 23 сентября 2019

В PySpark это можно сделать следующим образом:

spark.catalog._jcatalog.tableExists("schemaname.tablename")
...