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

标签 python jdbc apache-spark pyspark

我在 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 或简单地执行带有额外参数的spark-submit 作业--jars:

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

关于python - Apache pyspark 使用 oracle jdbc 拉取数据。找不到驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33830928/

相关文章:

python - 如何在Python中使用random.seed创建多个不同的初始伪随机数?

python - 在python中使用ffmpeg向视频添加水印

java - 如何将 table%rowtype 的 oracle pl/sql out 参数引用为 java 中的对象

java - 准备好的语句查询中 varchar(10) 的类型是什么?

apache-spark - 如何修复非法 Parquet 类型 : INT64 (TIMESTAMP_MICROS) error

python - 如何从 Python 脚本中运行 Streamlit 应用程序?

python - Python 中的套接字编程

java - hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size 有什么区别?

java - 如何更新 Spark 流中的广播变量?

python - 在 spark 中过滤数据帧使用 "in a set"子句