【问题标题】:java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver exception for connecting BigSQL using Pythonjava.lang.ClassNotFoundException:com.ibm.db2.jcc.DB2Driver 异常,用于使用 Python 连接 BigSQL
【发布时间】:2017-10-13 10:10:33
【问题描述】:

我是 pyspark 的新手。我在 Ubuntu 16.0 上使用 python 3.5 和 spark2.2.0。我编写了以下代码来使用 pyspark 连接 BigSQL

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

请高手指导我解决这个问题吗?

【问题讨论】:

  • 请编辑您的问题以添加这些详细信息 (1) 安装了哪个 Db2 客户端名称 (2) 这是该 Db2 客户端的版本/修订包 (3) 您是否能够连接到来自 bash 命令行的 Db2 数据库或在 ubuntu 上运行的任何其他 jdbc 应用程序。
  • 抱歉,我对 DB2 Client 知之甚少。如果您能建议我如何找到这些信息,那将会很有帮助。据我所知,正在安装最新的 DB2 客户端。是的,我可以在 Ubuntu 上使用 python 连接 BigSQL
  • 如何执行代码? pyspark 的命令行是什么?
  • 在 Jupyter 笔记本上写完代码后,我正在使用 jupyter 的 run 命令来执行代码

标签: apache-spark db2 pyspark bigsql


【解决方案1】:

您需要在 spark-submit 中添加 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    相关资源
    最近更新 更多