在尝试使用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()
3条答案
按热度按时间hrirmatl1#
在您的\u spark\u home\u path/conf/spark defaults.conf中添加以下代码,“/opt/modules/extraclass/”是我放置额外jar的目录:
或者您可以简单地将jodbc7.jar添加到您的\u spark\u home\u路径/jar中。
disho6za2#
我在aws emr集群(emr-5.31.0)上遇到了完全相同的问题。
设置
spark.driver.extraClassPath
以及spark.executor.extraClassPath
在SparkSession.builder.config()
,或spark-defaults.conf
,或与spark-submit --jars
命令的位置jodbc6.jar
不起作用。我把maven坐标传给
spark.jars.packages
然后我还必须spark.driver.extraClassPath
以及spark.executor.extraClassPath
至$HOME/.ivy2/jars/*
.然后执行以下操作(相应地更改参数):
或
5jvtdoz23#
虽然你还没有提到你使用的是哪种版本的spark。。。你可以在下面试试。。。。
将jar导入驱动程序和执行程序。所以,你需要编辑
conf/spark-defaults.conf
在下面添加两行。或
您可以在提交作业时尝试通过以下示例: