2017-11-08 5 views
0

ich die Scala Tutorial folgen auf https://spark.apache.org/docs/2.1.0/quick-start.htmlClassNotFoundException scala.runtime.LambdaDeserialize wenn Funken einreichen

Meine scala Datei

/* SimpleApp.scala */ 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 

object SimpleApp { 
    def main(args: Array[String]) { 
    val logFile = "/data/README.md" // Should be some file on your system 
    val conf = new SparkConf().setAppName("Simple Application") 
    val sc = new SparkContext(conf) 
    val logData = sc.textFile(logFile, 2).cache() 
    val numAs = logData.filter(line => line.contains("a")).count() 
    val numBs = logData.filter(line => line.contains("b")).count() 
    println(s"Lines with a: $numAs, Lines with b: $numBs") 
    sc.stop() 
    } 
} 

und build.sbt

name := "Simple Project" 

version := "1.0" 

scalaVersion := "2.12.4" 

libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "2.2.0" 

Ich lief sbt package erfolgreich (lösche schon alles außer scala source code und build.sbt dann run sbt package nochmal)

[info] Loading project definition from /home/cpu11453local/workspace/testspark_scala/project 
[info] Loading settings from build.sbt ... 
[info] Set current project to Simple Project (in build file:/home/my_name/workspace/testspark_scala/) 
[info] Packaging /home/my_name/workspace/testspark_scala/target/scala-2.12/simple-project_2.12-1.0.jar ... 
[info] Done packaging. 
[success] Total time: 1 s, completed Nov 8, 2017 12:15:24 PM 

Allerdings, wenn ich Funke laufen

einreichen
$SPARK_HOME/bin/spark-submit --class "SimpleApp" --master local[4] simple-project_2.12-1.0.jar 

bekam ich Fehler

java.lang.NoClassDefFoundError: scala/runtime/LambdaDeserialize 

Vollfunken einreichen Ausgabe auf gist

+1

Sie verwenden inkompatible Scala- und Spark-Versionen, siehe z. https://stackoverflow.com/questions/43883325/scala-spark-version-compatibility –

+1

Ändern Sie "scalaVersion: =" 2.12.4 "' zu 'scalaVersion: =" 2.11.8 "' und '" spark-core_2.10 "' '' '' spark-core_2.11 "'. –

+0

BTW, wenn Sie gerade mit Spark arbeiten, verwenden Sie stattdessen http://spark.apache.org/docs/latest/sql-programming-guide.html. Bitte. –

Antwort

0

als @Alexey sagte, ändern Scala Version 2.11 hat das Problem behoben.

build.sbt

name := "Simple Project" 

version := "1.0" 

scalaVersion := "2.11.11" 

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.2.0" 

Beachten Sie, dass Scala Version mit Funken übereinstimmen. Sehen Sie sich die artifactId an, spark-core_2.11 bedeutet, dass sie mit scala 2.11 kompatibel war (Keine Rückwärts- oder Vorwärtskompatibilität)

Verwandte Themen