在我的用例中,我想从spark-sql"创建或替换"一个Hive数据库。我想知道这是否可能?还是必须先手动删除 for 循环中数据库中的所有表,然后再删除空数据库?
试试下面
DROP DATABASE IF EXISTS <database_name> CASCADE;
CASCADE
将删除数据库中的所有表。- 默认情况下,模式为
RESTRICT
如果数据库中存在一些表,则 hive 不会删除数据库。
删除数据库后,使用 spark-sqlcreate a new database
。
有关详细信息,请参阅创建/删除/更改/使用数据库页面。
下一个选项将是您在帖子中建议的方式(delete all tables then drop the database
)
要删除数据库和所有表:
spark_session.sql(f'DROP DATABASE IF EXISTS {db_name} CASCADE')
要删除特定表:
spark_session.sql(f'DROP TABLE IF EXISTS {db_name}.{table_name}')