spark 从 oracle 导入数据 - java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

Kir*_*anK 5 python oracle hadoop apache-spark pyspark

在尝试使用 AWS EMR 上的 spark 从 oracle 数据库读取数据时,我收到此错误消息:

java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver。

有人可以让我知道是否有人遇到过这个问题以及他们是如何解决的吗?

pyspark --driver-class-path /home/hadoop/ojdbc7.jar --jars   /home/hadoop/ojdbc7.jar

from pyspark import SparkContext, HiveContext, SparkConf

from pyspark.sql import SQLContext

sqlContext = SQLContext(sc)

df = sqlContext.read.format("jdbc").options(url="jdbc:oracle:thin:user/pass@//10.200.100.142:1521/BMD", driver = "oracle.jdbc.driver.OracleDriver", 
dbtable="S_0COORDER_TEXT_D").load()
Run Code Online (Sandbox Code Playgroud)

Ram*_*ram 2

虽然您没有提到您正在使用哪个版本的 Spark...您可以在下面尝试...

将 jar 导入到驱动程序和执行程序中。因此,您需要编辑conf/spark-defaults.conf添加下面的两行。

spark.driver.extraClassPath /home/hadoop/ojdbc7.jar
spark.executor.extraClassPath /home/hadoop/ojdbc7.jar
Run Code Online (Sandbox Code Playgroud)

或者
您可以在提交作业时尝试通过,如下例所示:

--conf spark.driver.extraClassPath /home/hadoop/ojdbc7.jar
--conf spark.executor.extraClassPath /home/hadoop/ojdbc7.jar
Run Code Online (Sandbox Code Playgroud)