Apache spark “线程中的异常”;“主要”;java.sql.SQLException:运行spark submit时没有合适的驱动程序

Apache spark “线程中的异常”;“主要”;java.sql.SQLException:运行spark submit时没有合适的驱动程序,apache-spark,apache-spark-2.0,spark-submit,Apache Spark,Apache Spark 2.0,Spark Submit,Spark版本:2.3.0 我正在使用--jars选项运行spark submit命令 我已经在命令中提供了ojdbc6.jar,如下所示 命令 ./spark-submit --class com.sample.ABC --jars /scratch/user/abc/drools-jars/ojdbc6.jar --master spark://IP:Port "/scratch/user/abc/POC jar/ABC-0.0.1-SNAPSHOT.jar" 但我还是得到了以下例外: E

Spark版本:2.3.0

我正在使用
--jars
选项运行spark submit命令

我已经在命令中提供了ojdbc6.jar,如下所示

命令

./spark-submit --class com.sample.ABC --jars /scratch/user/abc/drools-jars/ojdbc6.jar --master spark://IP:Port "/scratch/user/abc/POC jar/ABC-0.0.1-SNAPSHOT.jar"
但我还是得到了以下例外:

Exception in thread "main" java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getDriver(DriverManager.java:315)
        at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$7.apply(JDBCOptions.scala:85)
        at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$7.apply(JDBCOptions.scala:85)
        at scala.Option.getOrElse(Option.scala:121)
        at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:84)
        at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:35)
        at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:34)
        at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:340)
        at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:239)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:227)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:164)
        at com.sample.Transformation.main(Transformation.java:76)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:879)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:197)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:227)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:136)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
线程“main”java.sql.SQLException中的异常:没有合适的驱动程序 位于java.sql.DriverManager.getDriver(DriverManager.java:315) 位于org.apache.spark.sql.execution.datasources.jdbc.jdboptions$$anonfun$7.apply(jdboptions.scala:85) 位于org.apache.spark.sql.execution.datasources.jdbc.jdboptions$$anonfun$7.apply(jdboptions.scala:85) 位于scala.Option.getOrElse(Option.scala:121) 位于org.apache.spark.sql.execution.datasources.jdbc.jdbcopies。(jdbcopies.scala:84) 位于org.apache.spark.sql.execution.datasources.jdbc.jdbcopies。(jdbcopies.scala:35) 位于org.apache.spark.sql.execution.datasources.jdbc.jdbrelationprovider.createRelation(jdbrelationprovider.scala:34) 位于org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:340) 位于org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:239) 位于org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:227) 位于org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:164) 位于com.sample.Transformation.main(Transformation.java:76) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:498) 位于org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) 位于org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:879) 位于org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:197) 位于org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:227) 位于org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:136) 位于org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 在命令中添加了
--driver class path
,如下所示:

./spark-submit --class com.sample.ABC --jars /scratch/user/abc/drools-jars/ojdbc6.jar `--driver-class-path /scratch/user/abc/drools-jars/ojdbc6.jar --master spark://IP:Port "/scratch/user/abc/POC jar/ABC-0.0.1-SNAPSHOT.jar"
这解决了问题