Reputation: 31546
I am using spark 1.3.0 and spark-avro 1.0.0. my build.sbt file looks like
libraryDependencies ++=Seq(
"org.apache.spark" % "spark-core_2.10" % "1.3.0" % "provided",
"org.apache.spark" % "spark-sql_2.10" % "1.5.2" % "provided",
"com.databricks" % "spark-avro_2.10" % "1.0.0",
"org.apache.avro" % "avro" % "1.7.7",
"org.apache.avro" % "avro-mapred" % "1.7.7",
"org.apache.spark" % "spark-hive_2.10" % "1.0.0" % "provided",
"joda-time" % "joda-time" % "2.9.2",
"org.joda" % "joda-convert" % "1.8.1",
"commons-codec" % "commons-codec" % "1.9"
)
I am building a fat jar using the assembly plugin.
However sometimes my code fails with the error below. If I do a jar -tf Fooassembly.jar
I can see lots of .class files in 'com/databricks/spark/avro' folder. so I am not sure why its complaining for this special class.
Exception in thread "main" java.lang.NoClassDefFoundError: com/databricks/spark/avro/package$
at com.databricks.spark.avro.DefaultSource.createRelation(DefaultSource.scala:78)
at org.apache.spark.sql.sources.ResolvedDataSource$.apply(ddl.scala:308)
at org.apache.spark.sql.DataFrame.save(DataFrame.scala:1123)
at org.apache.spark.sql.DataFrame.save(DataFrame.scala:1083)
at com.abhi.FormNameMatcher$$anonfun$main$1.apply(FormNameMatcher.scala:89)
at com.abhi.FormNameMatcher$$anonfun$main$1.apply(FormNameMatcher.scala:83)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at com.abhi.FormNameMatcher$.main(FormNameMatcher.scala:83)
at com.abhi.FormNameMatcher.main(FormNameMatcher.scala)
Upvotes: 1
Views: 4640
Reputation: 1532
spark avro should be compatible with spark itself. Try to fix compatibility between spark core and spark sql(should be same version) and then choose compatible version of spark-avro(https://github.com/databricks/spark-avro see Requirements part)
Upvotes: 1