【发布时间】:2021-06-17 13:58:51
【问题描述】:
在过去的几天里,我遇到了一个我无法解释的问题。 我在 Windows 10、Anaconda 64 位、Jupyter 64 位、Python 64 位等... 我是初学者,我需要帮助。非常感谢您的帮助,非常感谢。 我在 anaconda jupyter notebook 下开发,我有一个使用 jdbc 连接到 Hive 数据库的 python 脚本。 我添加了一个 jar 文件,其中包含一个 java 类 org.apache.hive.jdbc.HiveDriver。 当我运行脚本时出现以下错误:
TypeError:找不到类 org.apache.hive.jdbc.HiveDriver
这是我的python代码
import jaydebeapi
driver = "org.apache.hive.jdbc.HiveDriver"
url = "jdbc:hive2://ip-172-31-3-208.eu-west-1.compute.internal:11000/default;principal=indexima/ip-172-31-3-208.eu-west-1.compute.internal@INDEXIMA.COM;"
hivejar = "C:/user/xxx/Documents/Python/hive-jdbc-3.1.2.jar"
#create connection and cursor
connection = jaydebeapi.connect(driver, [ url, '', ''], hivejar)
cursor = connection.cursor()
输出是:
TypeError Traceback (most recent call last)
<ipython-input-15-3a47c2c3c553> in <module>
11
12 # create connection and cursor
---> 13 connection = jaydebeapi.connect(driver, [ url, '', ''], hivejar)
14 cursor = connection.cursor()
15
C:\ProgramData\Anaconda3\lib\site-packages\jaydebeapi\__init__.py in connect(jclassname, url, driver_args, jars, libs)
410 else:
411 libs = []
--> 412 jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
413 return Connection(jconn, _converters)
414
C:\ProgramData\Anaconda3\lib\site-packages\jaydebeapi\__init__.py in _jdbc_connect_jpype(jclassname, url, driver_args, jars, libs)
219 return jpype.JArray(jpype.JByte, 1)(data)
220 # register driver for DriverManager
--> 221 jpype.JClass(jclassname)
222 if isinstance(driver_args, dict):
223 Properties = jpype.java.util.Properties
C:\ProgramData\Anaconda3\lib\site-packages\jpype\_jclass.py in __new__(cls, jc, loader, initialize)
97
98 # Pass to class factory to create the type
---> 99 return _jpype._getClass(jc)
100
101
**TypeError: Class org.apache.hive.jdbc.HiveDriver is not found**
jar 文件当然包含 java 类 HiveDriver。 我更改了罐子的名称并替换为任何名称,并且得到了相同的诊断。 就好像 Jupyter 将寻找其他地方一样。 感谢您的帮助。
【问题讨论】:
标签: python jdbc hive anaconda jupyter