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)
或将--jars
与jar
个文件的路径传递,
到spark-submit
。
我在 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)
或将--jars
与jar
个文件的路径传递,
到spark-submit
。