【发布时间】:2019-12-29 23:05:47
【问题描述】:
我正在尝试检查 hive 元存储中是否存在表,如果不存在,请创建表。如果表存在,则追加数据。
我有以下代码的 sn-p:
spark.catalog.setCurrentDatabase("db_name")
db_catalog = spark.catalog.listTables(dbName = 'table_name)
if any(table_name in row for row in db_catalog):
add data
else:
create table
但是,我遇到了一个错误。
>>> ValueError: Some of types cannot be determined after inferring
我无法解决值错误,因为我在 hive 元存储中创建的其他数据库的表出现相同的错误。是否有其他方法可以检查表是否存在于 hive 元存储中?
【问题讨论】:
-
使用sql
create table if not exist -
顺便说一句,您是否错过了代码中 table_name 中的结束引号,或者它是复制粘贴错误?
-
@JimTodd 这是一个复制粘贴错误,因为它只是一个 sn-p。实际代码要长得多。
标签: python-3.x apache-spark hive pyspark apache-spark-sql