Python - 使用 JayDeBeApi 连接到 Hive 时出错

Posted

技术标签:

【中文标题】Python - 使用 JayDeBeApi 连接到 Hive 时出错【英文标题】:Python - Error connecting to Hive using JayDeBeApi 【发布时间】:2017-10-01 23:17:09 【问题描述】:

我正在尝试使用 Python 脚本中的 JayDeBeApi 连接 Hortonworks 中的 Hive。我已经安装了 Python 64 位并使用 PyCharm IDE 进行了设置。我也安装了 JayDeBeApi。我收到以下错误,不确定我缺少什么。

    C:\Python27\python.exe C:/Projects_Work/primex/tableau/TDEConnect.py
    Opening connection.....
    Traceback (most recent call last):
    File "C:/Projects_Work/primex/tableau/TDEConnect.py", line 47, in <module>
main()
    File "C:/Projects_Work/primex/tableau/TDEConnect.py", line 19, in main
with connect() as conn:
    File "C:/Projects_Work/primex/tableau/TDEConnect.py", line 30, in __enter__
'user': sslUser, 'password': sslPassword, driverPath, )
    File "C:\Python27\lib\site-packages\jaydebeapi\__init__.py", line 381, in connect
    jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
    File "C:\Python27\lib\site-packages\jaydebeapi\__init__.py", line 159, in _jdbc_connect_jpype
    import jpype
    File "C:\Python27\lib\site-packages\jpype\__init__.py", line 17, in <module>
from ._jpackage import *
    File "C:\Python27\lib\site-packages\jpype\_jpackage.py", line 18, in <module>
    import _jpype

    ImportError: DLL load failed: %1 is not a valid Win32 application.

    Process finished with exit code 1

任何输入都会很棒。谢谢。

【问题讨论】:

【参考方案1】:

JayDebeApi 包含用于从 Python 运行 Java 类的 JPype。 安装 JayDebeApi 之前是否需要安装 C++ Compiler for Python

窗户

适用于 Python 2.7 的 Visual Studio 2008。见:https://docs.python.org/2.7/using/windows.html#compiling-python-on-windows

适用于 Python 3.4 的 Visual Studio 2010。见:https://docs.python.org/3.4/using/windows.html#compiling-python-on-windows

【讨论】:

【参考方案2】:

或者,您可以直接获取 Jpype ***(如果由于身份验证原因您无法安装 C++ 开发套件)

jpype wheel files

【讨论】:

以上是关于Python - 使用 JayDeBeApi 连接到 Hive 时出错的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Netezza 和 MySQL 的 jaydebeapi

使用 python 与 securityMechanism=13 连接 db2

Python学习之六_同时访问Oracle和Mysql的方法

如何从 Python 连接到 Netezza 数据库?

带有presto-python-client的用户名和密码

通过 PRESTO 连接器选择随机数据样本