Scala java.lang.NoClassDefFoundError: org/postgresql/Driver

MrNierda

I am trying to link a PostgreSQL database to a scala/spark project.

I wrote build.sbt

name := "Hermes"
version := "1.0"
scalaVersion := "2.10.6"
libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-sql" % "2.2.0",
  "org.apache.spark" %% "spark-core" % "2.0.1",
  "org.apache.spark" %% "spark-mllib" % "2.0.1",
  "org.postgresql" % "postgresql" % "42.1.1"
)

And i have method of connection :

def getDatasetFromSql(query: String): Dataset[Row] = {
val options = Map(
  "driver" -> "org.postgresql.Driver",
  "url" -> createConnection,
  "dbtable" -> query
)
val fromSqlDs: Dataset[Row] = spark.read.format("jdbc").options(options).load
fromSqlDs.cache.printSchema()
fromSqlDs
}

There are no exceptions throw when I tape sbt package, but when I spark-submit my code, I have this exception thrown java.lang.NoClassDefFoundError: org/postgresql/Driver

I have already checked some answers here, about the use of classOf[org.postgresql.driver] and SparkConf().setJars(). No success at this point.

How can I make this work ?

Agustus

I faced similar issue once. So at the first try I have downloaded the postgres driver and saved it in a particular path. Then run the spark application like as follows :

sbt package 
spark-submit --driver-class-path ~/jarDir/p‌​ostgresql-9.3-1102-j‌​dbc41.jar target/scala-2.10/simple-project_2.10-1.0.jar

As I was working with Ambari. So added the postgres driver directly to a custom parameter. So, next time no need to pass the postgres driver while running the command. Hope it helps.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

java.lang.NoClassDefFoundError: scala/Product$class

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Cloneable

Spark : java.lang.NoClassDefFoundError: scala/collection/mutable/ArraySeq$ofRef

Apache Spark - Quick Start "java.lang.NoClassDefFoundError: scala/Serializable"

java.lang.NoClassDefFoundError

"java.lang.NoClassDefFoundError"

java.lang.NoClassDefFoundError when running Scala JUnit Test on Scala IDE (Eclipse Kepler)

Scala Flink get java.lang.NoClassDefFoundError: scala/Product$class after using case class for customized DeserializationSchema

Java AWT in scala: (AWT-EventQueue-0) java.lang.NoClassDefFoundError

java.lang.NoClassDefFoundError in scalatest

Android: java.lang.NoClassDefFoundError

"java.lang.NoClassDefFoundError: Result"

java.lang.NoClassDefFoundError on OSGi

java.lang.NoClassDefFoundError in junit

Classloader java.lang.NoClassDefFoundError?

The dreaded java.lang.NoClassDefFoundError

Java.lang.NoClassDefFoundError in android

PowerMockito: java.lang.NoClassDefFoundError

Android java lang NoClassDefFoundError Caldroid

Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/mutable/SynchronizedBuffer$class

ScalaTest: QuickStart code fails with java.lang.NoClassDefFoundError: scala/xml/NamespaceBinding

Trying to test creating a Scala Plugin with version 2.13, getting java.lang.NoClassDefFoundError sclaa Serializable

java.lang.NoClassDefFoundError: com/typesafe/config/ConfigFactory when packaging Scala project with Maven

Hive error : Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/Iterable

java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder SBT Scala

java.lang.NoClassDefFoundError: groovy/lang/GroovyObject

java.lang.NoClassDefFoundError: scala/collection/convert/DecorateAsScala but scala-library in pom.xml to use swagger with JBoss servlet

NoClassDefFoundError: scala/ScalaObject in mixed Scala/Java project

java.lang.NoClassDefFoundError at MenuActivity.java