【问题标题】:Apache pyspark using oracle jdbc to pull data. Driver cannot be foundApache pyspark 使用 oracle jdbc 拉取数据。找不到驱动程序
【发布时间】:2016-02-23 04:35:41
【问题描述】:

我在 Windows 7 上使用 apache spark pyspark (spark-1.5.2-bin-hadoop2.6)。

当我在 pyspark 中运行我的 python 脚本时,我不断收到此错误。

调用 o23.load 时出错。 java.sql.SQLException: 找不到适合 jdbc:oracle:thin:------------------ 的驱动程序---连接

这是我的python文件

import os

os.environ["SPARK_HOME"] = "C:\\spark-1.5.2-bin-hadoop2.6"
os.environ["SPARK_CLASSPATH"] = "L:\\Pyspark_Snow\\ojdbc6.jar"

from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext

spark_config = SparkConf().setMaster("local[8]")  
sc = SparkContext(conf=spark_config) 
sqlContext = SQLContext(sc)

df = (sqlContext
    .load(source="jdbc",
          url="jdbc:oracle:thin://x.x.x.x/xdb?user=xxxxx&password=xxxx",
          dbtable="x.users")
 )
sc.stop()

【问题讨论】:

    标签: python jdbc apache-spark pyspark


    【解决方案1】:

    要以编程方式设置 jar,请设置以下配置: spark.yarn.dist.jars 带有逗号分隔的 jar 列表。

    例如:

    from pyspark.sql import SparkSession
    
    spark = SparkSession \
            .builder \
            .appName("Spark config example") \
            .config("spark.yarn.dist.jars", "<path-to-jar/test1.jar>,<path-to-jar/test2.jar>") \
            .getOrCreate()
    

    或者如下:

    from pyspark import SparkContext, SparkConf
    from pyspark.sql import SQLContext
    
    spark_config = SparkConf().setMaster("local[8]")
    spark_config.set("spark.yarn.dist.jars", "L:\\Pyspark_Snow\\ojdbc6.jar")
    sc = SparkContext(conf=spark_config) 
    sqlContext = SQLContext(sc)
    

    或者将--jarsjar文件的路径传递给,spark-submit

    【讨论】:

      【解决方案2】:

      您也可以使用 --jars 和 --driver-class-path 添加 jar,然后专门设置驱动程序。见https://stackoverflow.com/a/36328672/1547734

      【讨论】:

        【解决方案3】:

        不幸的是,更改环境变量 SPARK_CLASSPATH 将不起作用。你需要声明

        spark.driver.extraClassPath L:\\Pyspark_Snow\\ojdbc6.jar
        

        在您的 /path/to/spark/conf/spark-defaults.conf 中,或者简单地使用附加参数 --jars 执行 spark-submit 作业:

        spark-submit --jars "L:\\Pyspark_Snow\\ojdbc6.jar" yourscript.py
        

        【讨论】:

        • 酷,很高兴为您提供帮助!
        • spark-defaults.conf 对我来说非常有效(在所有其他方法都失败之后)。谢谢。
        猜你喜欢
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 2015-06-15
        • 2013-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多