While writing Apache Spark in Scala / Python (PySpark) programming language to read data from Oracle Data Base using Scala / Python in Linux operating system/ Amazon Web Services, sometimes will get below error in
spark.driver.extraClassPath in either executor class or driver class.
Caused by:java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver at scala.tools.nsc.interpreter.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:83) at Java .lang.ClassLoader.loadClass(ClassLoader.java.424) at Java.lang.ClassLoader.loadClass(ClassLoader.java.357) at org.apache.spark.sql.execution.datasources.jdbc.DriverRegistry$.register(DriverRegistry.scala:35) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$anofun$createConnectionFactory$1.api at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$anofun$createConnectionFactory$1.api at scala.Option.foreach(Option.scla:236) at org . apache.spark.sql.execution.datasources.jdbc.JdbcUtils $ anofun $ createConnection Factory $ (JdbcUtils.scala) at <init> ( < console >:46) at . <init> (<console>:52) at. <clinit> (<console>) at. <init> (<console>:7) at. <clinit> (<console>) at $print (<console>)
Solution:
After getting this error will provide a simple solution in Spark Scala. Sometimes these are coming to Python (PySpark).
import-related jars to both executor class and driver class. First, we need to edit the configuration file as spark-defaults in spark-default.conf file.
Adding below two jar files path in spark-default.conf file.
spark.driver.extraClassPath /home/hadoop/ojdbc7.jar spark.executor.extraClassPath /home/hadoop/ojdbc7.jar
Above two jar files path in configurations with exact version is matched to your Spark version otherwise will get the compatible issue.
Sometimes these two classpaths get an error then will add in your code either Scala or Pyspark programming –conf before Spark driver, executor jar files in bottom of the page example.
If will get the same issue again then will follow the below solution:
Step 1: Download Spark ODBC jar files from the official Maven website.
Step 2: Copy the download jar files into the below path in the share location in Spark.
/usr/lib/spark/jars
For Example – PySpark programming code snippet for more information.
pyspark --driver-classpath /home/hadoop/odbc7.jar --jars # jar file path from pyspark import SparkContext, Spark conf # import Spark Context and configuration from pyspark.sql import SparkContext #Sql context sqlContext = sqlContext (sc) dbconnection = sqlContext . read . format ("jdbc") . options (url: "Give your jdbc connection url path").load() #Data Base connection to read data from Spark with the help of jdbc