python - 有什么方法可以使用 Python 在 Hive 上创建数据库?
问题描述
我想自动化整个过程来测试我想创建数据库、执行操作然后删除数据库的场景。有没有办法使用 Python 3 来做到这一点。我尝试使用 PyHive,但它需要数据库名称才能连接。
解决方案
如果无法连接到数据库并且需要从终端运行 hive 命令,我们可以使用子进程模块中的 Popen 函数从终端使用 Hive。
if self.is_database_exist():
print("Exists")
self.drop_hive_database()
else:
print("Not Exists")
put = Popen(["hive", "-S", "-e", "create database {0};".format(self.database)], stdin=PIPE, stdout=PIPE, bufsize=-1)
out, exp = put.communicate()
if "failed" in str(out).lower():
self.logger("Failed to create Hive Database %s!" % self.database)
raise Exception("Failed to create database")
这里 self.database 包含数据库的名称,并且数据库是否存在函数正在检查数据库是否已经存在,然后我们正在删除数据库并重新创建它。
推荐阅读
- sql - Postgres CROSSTAB 查询无法获得所有预期的列
- javascript - 无法访问的语句,menuItem.setActionView(R.layout.theme_switch);
- javascript - 您如何在没有闪存的护照的完成方法中访问消息/在反应应用程序中?
- angular - 使用 Angular 10 的角度材料的 mat-icon 时出错
- windows - 如何检测 Word.Application.SaveAs 超时?
- javascript - 仅当内容与特定值匹配时才渲染 VUE 槽
- azure-devops - Azure CI 管道 - DotNetCoreCLI@2 任务错误
- javascript - 使用 JSON 在 Python 和 JavaScript 之间进行通信以更改网站的 CSS
- spring-boot - Spring Boot 2 OpenAPI 3 文档的自定义模式
- email - 从 Outlook 桌面应用程序发送时,如何阻止 IP 和计算机名称出现在 SMTP 电子邮件标头中?