首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:使用JayDeBeApi的JDBC连接错误

Python:使用JayDeBeApi的JDBC连接错误
EN

Stack Overflow用户
提问于 2020-03-18 15:28:50
回答 2查看 6.5K关注 0票数 2

我在运行下面的代码时遇到了一个错误。请帮助我解决这个问题,或者建议另一种通过JDBC连接Vertica服务器的方法。

我也试过用火花放电连接。但是,有了吡火花,我们就无法在vertica服务器上执行sql查询。

系统配置:

带有python 3.7.0的Linux

jaydebeapi版本- 1.1.1

jpype版本- 0.7.2

代码语言:javascript
复制
import jaydebeapi
import jpype

jdbc_url = 'jdbc:vertica://XX.XX.XXX.XXX/DATA?XXXXX'
vertica_properties={"user": "XXXX", "password": "XXXXX"}

jars = ['XXXX/vertica-jdbc-9.3.1-0.jar', 
        'XXXX/vertica-spark2.1_scala2.11.jar', 
        'XXXX/CustomVerticaDialect.jar']

connection = jaydebeapi.connect(jclassname='com.vertica.jdbc.Driver', url=jdbc_url, driver_args=vertica_properties, jars=jars)
connection

误差

代码语言:javascript
复制
--------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-cc7d2752ecd8> in <module>()
----> 1 connection = jaydebeapi.connect(jclassname='com.vertica.jdbc.Driver', url=jdbc_url, driver_args=vertica_properties, jars=jars)
      2 connection

/BDAPP/python/anaconda3/lib/python3.7/site-packages/jaydebeapi/__init__.py in connect(jclassname, url, driver_args, jars, libs)
    379     else:
    380         libs = []
--> 381     jconn = _jdbc_connect(jclassname, url, driver_args, jars, libs)
    382     return Connection(jconn, _converters)
    383 

/BDAPP/python/anaconda3/lib/python3.7/site-packages/jaydebeapi/__init__.py in _jdbc_connect_jpype(jclassname, url, driver_args, jars, libs)
    180         types = jpype.java.sql.Types
    181         types_map = {}
--> 182         for i in types.__javaclass__.getClassFields():
    183             types_map[i.getName()] = i.getStaticAttribute()
    184         _init_types(types_map)

AttributeError: type object 'java.sql.Types' has no attribute '__javaclass__'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-01 01:05:26

截至2020年3月,jaydebeapi似乎与jpype 0.7.2不兼容。这里是指出这个问题的github页面:http://github.com/baztian/jaydebeapi/issues/99

根据github页面,解决方案是使用以下两种方法将jpype降级为jpype 0.6.3:

代码语言:javascript
复制
pip install JPype1==0.6.3 --force-reinstall

代码语言:javascript
复制
conda install -c conda-forge JPype1=0.6.3 --force-reinstall

降级炒作对我有帮助

票数 2
EN

Stack Overflow用户

发布于 2020-06-16 19:43:40

请升级到JayDeBeApi>=1.2.1。从JPype1 0.7.0开始,引入了一些不向后兼容的更改。较新的JayDeBeApi版本可以处理这个问题。

代码语言:javascript
复制
pip install --upgrade JayDeBeApi
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60742657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档