使用Pyspark使用SSL连接到DB2

时间:2019-02-06 08:47:09

标签: ssl pyspark db2

我正在尝试使用Linux上的Pyspark通过SSL连接到DB2。我尝试了以下

user = "xxxx"
password = "xxxxx"
jdbcURL = "jdbc:db2://nn.nn.nnn.nnn:nnnn/<database>"
prop = {"user": user, "password": password, "driver": 
"com.ibm.db2.jcc.DB2Driver", "sslConnection": "true"}
table = "<schema>.<table name>"
df = spark.read.jdbc(url=jdbcURL, table=table, properties=prop)

我也尝试过

user = "xxxx"
password = "xxxxx"
jdbcURL = "jdbc:db2://nn.nn.nnn.nnn:nnnn/<database>"
prop = {"user": user, "password": password, "driver": 
"com.ibm.db2.jcc.DB2Driver", "sslConnection": "true"
"Security": "SSL", "SSLServerCertificate": "<path to arm file>"}}
table = "<schema>.<table name>"
df = spark.read.jdbc(url=jdbcURL, table=table, properties=prop)

在两种情况下我都遇到相同的错误 或套接字输出流。

  

错误位置:Reply.fill()-socketInputStream.read(-1)。信息:   sun.security.validator.ValidatorException:PKIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法执行   查找到请求目标的有效认证路径。错误代码= -4499,   SQLSTATE = 08001

我不确定指定.arm路径的语法。卡住。请帮助

Ganesh

P.S。我可以使用

连接python和ibm_db模块
import ibm_db
conn = ibm_db.connect("DATABASE=<database> 
;HOSTNAME=nn.nn.nnn.nnn:nnnn;SECURITY=SSL;SSLServerCertificate=<path to arm 
file> ;UID=<user>;PWD=<password>","","")

这有效。

1 个答案:

答案 0 :(得分:0)

此问题通过重新安装Java证书解决。