Как проверить, существует ли временное представление в PySpark? - PullRequest
0 голосов
/ 11 октября 2018

Я понимаю, как проверить существование таблицы в PySpark:

>>> spark.catalog.setCurrentDatabase("staging")
>>> 'test_table' in sqlContext.tableNames()
True

Но как насчет представлений?Если он создаст его следующим образом:

df = sqlContext.sql("SELECT * FROM staging.test_table")
df.createOrReplaceTempView("test_view")
df.persist(p.persistLevel)

Как мне проверить, существует ли позже в моем коде "тестовое представление"?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

«по умолчанию» - это контекст, в котором определены представления.

>>> spark.catalog.setCurrentDatabase("staging")
>>> 'test_view' in sqlContext.tableNames()
False
>>> spark.catalog.setCurrentDatabase("default")
>>> 'test_view' in sqlContext.tableNames()
True

Это займет немного времени (> 3 с)

Быстрее будет попытаться / поймать

try:
  _=spark.read.table('test_view')
  print('Exists!')
catch:
  print('Does not exist.')
0 голосов
/ 11 октября 2018

Вы можете использовать sqlContext.tableNames и sqlContext.tables

>>> sqlContext.registerDataFrameAsTable(df, "table1")
>>> "table1" in sqlContext.tableNames()
True
>>> "table1" in sqlContext.tableNames("default")
True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...