scala intellij-idea apache-spark

Ejecución del ejemplo de spark scala falla



intellij-idea apache-spark (4)

Soy nuevo en Spark y Scala. Creé un proyecto IntelliJ Scala con SBT y agregué algunas líneas para build.sbt.

name := "test-one" version := "1.0" scalaVersion := "2.11.2" libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.1.0"

Mi versión de Scala es 2.10.4 pero este problema también ocurre con 2.11.2

Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class at akka.util.Collections$EmptyImmutableSeq$.<init>(Collections.scala:15) at akka.util.Collections$EmptyImmutableSeq$.<clinit>(Collections.scala) at akka.japi.Util$.immutableSeq(JavaAPI.scala:209) at akka.actor.ActorSystem$Settings.<init>(ActorSystem.scala:150) at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:470) at akka.actor.ActorSystem$.apply(ActorSystem.scala:111) at akka.actor.ActorSystem$.apply(ActorSystem.scala:104) at org.apache.spark.util.AkkaUtils$.org$apache$spark$util$AkkaUtils$$doCreateActorSystem(AkkaUtils.scala:121) at org.apache.spark.util.AkkaUtils$$anonfun$1.apply(AkkaUtils.scala:54) at org.apache.spark.util.AkkaUtils$$anonfun$1.apply(AkkaUtils.scala:53) at org.apache.spark.util.Utils$$anonfun$startServiceOnPort$1.apply$mcVI$sp(Utils.scala:1446) at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160) at org.apache.spark.util.Utils$.startServiceOnPort(Utils.scala:1442) at org.apache.spark.util.AkkaUtils$.createActorSystem(AkkaUtils.scala:56) at org.apache.spark.SparkEnv$.create(SparkEnv.scala:153) at org.apache.spark.SparkContext.<init>(SparkContext.scala:203) at TweeProcessor$.main(TweeProcessor.scala:10) at TweeProcessor.main(TweeProcessor.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) Caused by: java.lang.ClassNotFoundException: scala.collection.GenTraversableOnce$class at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 23 more

Intentó buscar en línea, la mayoría de las respuestas apuntan a una falta de coincidencia entre las versiones de API y la versión de Scala, pero ninguna es específica de Spark.


Baja la versión scala a 2.10.4

name := "test-one" version := "1.0" //scalaVersion := "2.11.2" scalaVersion := "2.10.4" libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.1.0"


Este es un problema de compatibilidad de versiones. Spark_core 2.10 es compilación usando Scala 2.10, y su archivo sbt menciona que está usando scala 2.11. Baja tu versión scala a 2.10 o actualiza tu chispa a 2.11


spark-core_2.10 está diseñado para usar con las versiones 2.10.x de scala. Deberías usar

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"

que seleccionará la versión _2.10 o _2.11 correcta para su versión scala.

También asegúrese de compilar contra las mismas versiones de scala y spark que las del clúster donde ejecuta esto.


scalaVersion := "2.11.1" libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.11" % "2.2.0", "org.apache.spark" % "spark-sql_2.11" % "2.2.0" )

Esta configuración funcionó para mí.