Apache pyspark 使用 oracle jdbc 来拉取数据。找不到驱动程序

Apache pyspark using oracle jdbc to pull data. Driver cannot be found

我在 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()

不幸的是,更改环境变量 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

您还可以使用 --jars 和 --driver-class-path 添加 jar,然后专门设置驱动程序。参见

要以编程方式设置 jars,请设置以下配置: 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