java.lang.ClassNotFoundException:使用Python连接BigSQL的com.ibm.db2.jcc.DB2Driver异常

问题描述:

我是pyspark的新手。我在Ubuntu 16.0上使用python 3.5 & spark2.2.0。我写了下面的代码使用pyspark连接BigSQLjava.lang.ClassNotFoundException:使用Python连接BigSQL的com.ibm.db2.jcc.DB2Driver异常

from pyspark.sql.session import SparkSession 
spark = SparkSession.builder.getOrCreate() 

spark_train_df = spark.read.jdbc("jdbc:db2://my bigsq url :port number:sslConnection=true;sslTrustStoreLocation=ibm-truststore.jks;sslTrustStorePassword=*password123;","schema.Table Name", 
      properties={"user": username, 
         "password": password, 
         'driver' : 'com.ibm.db2.jcc.DB2Driver'}) # Trust store location is defined in .bashrc 
spark_train_df.registerTempTable('data_table') 

train_df = spark.sql('select * from data_table') 

而且我已经加入我的信任存储&驱动程序路径在我的.bashrc文件 但是当运行此代码我收到错误消息

java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver exception 

请问专家请指导我解决这个问题吗?

+0

请编辑您的问题,添加这些细节(1 )安装了Db2-client名称(2),它是该Db2-client的版本/修复包(3)是否可以从bash命令行或任何其他运行在ubuntu上的jdbc应用程序连接到Db2数据库。 – mao

+0

对不起,我对DB2 Client没有太多线索。如果您可以建议我如何找到这些信息,那么这将会有所帮助。据我所知,最新的DB2客户端正在安装。是的,我可以在Ubuntu上使用python连接BigSQL –

+0

你如何执行代码?什么是pyspark的命令行? –

您需要添加DB2 JDBC jar文件在你的火花提交,即专门用于Postgres

spark-shell --master local[*] --packages org.postgresql:postgresql:9.4.1207.jre7 

或(或DB2)

spark-shell --master local[*] --jars /path/to/db2/jdbc/db2.jar