如何在 Python 3.7 中连接到 hadoop/hive 数据库(需要身份验证)并执行简单的 SQL 查询?

Alb*_*rto 1 sql hadoop hive python-3.x

我需要连接到需要使用用户/密码进行身份验证的 hadoop (apache hive) 数据库。我通常使用 DBeaver(安装了 JDBC 驱动程序)访问它,但现在我需要使用 Python 3.7(不是 Python 2.x)中的脚本使用简单查询来检索数据。我尝试了几种方法都没有成功。有人有有效的解决方案吗?

我试过 pyhive、presto、pyhs2、impala、ibis

Aja*_*ade 7

您可以按照以下步骤在 Windows 机器上通过 ODBC 驱动程序从 python 连接配置单元,

  1. 安装 Hive 所需的驱动程序。如果您使用 Cloudera/Hortonworks,您可以在他们的网站上找到相应的驱动程序。
  2. 安装完成后,从启动菜单或控制面板转到64 位 ODBC 管理器
  3. 填写所需的服务器详细信息以及连接用户 ID 和密码。下面是相同的屏幕截图。

在此处输入图片说明

  1. 完成后,单击“测试”按钮检查测试连接,并检查它是否成功。
  2. 您可以在从 python 连接 hive 时使用相同的 DSN,下面是相同的代码片段。
    import pyodbc
    
    import pandas as pd
    
    with pyodbc.connect("DSN=<replace DSN name>", autocommit=True) as conn:
        df = pd.read_sql("<Hive Query>", conn)
Run Code Online (Sandbox Code Playgroud)