Ich schrieb ein Spark-Programm mit Scala, aber wenn ich "Spark-Submit" verwenden, um mein Projekt einzureichen, Ich habe die java.lang.ClassNotFoundException getroffen.java.lang.ClassNotFoundException, wenn ich "Spark-Submit" mit einem neuen Klassennamen anstelle von "SimpleApp",
meine .sbt Datei:
name:="Spark Project"
version:="1.0"
scalaVersion:="2.10.5"
libraryDependencies+="org.apache.spark" %% "spark-core" % "1.3.0"
meine .scala Datei Name ist SparkProject.scala und darin Namen des Objekts ist zu SparkProject.
/* SparkProject.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SparkProject {
def main(args: Array[String]) {
val logFile = "YOUR_SPARK_HOME/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("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
mein Befehl Projekt einzureichen ist:
spark-submit --class "SparkProject" --master local[12] target/scala-2.10/spark-project_2.10-1.0.jar
Wer weiß, wie diese zu lösen? Endlich was mich verwirren lässt ist, wenn ich das Beispiel hier versuche [http://spark.apache.org/docs/latest/quick-start.html],it läuft gut.Aber wenn ich ein neues Projekt bilde und abschicke geht es schief. Jede Hilfe wird sehr geschätzt.
Ich denke, Sie fehlen der 'Paketname' in der Klasse Name in Ihrem Senden Befehl. Ich nehme an, in Ihrem Projekt hat Ihre SparkProject.scala-Datei etwas wie 'package com.example' als erste Zeile. Wenn es ... ist, bedeutet dies, dass der vollständig qualifizierte Name Ihrer Klasse "com" lautet.Beispiel.SparkProject', so müssen Sie '- class" com.example.SparkProject "' verwenden. –
@SarveshKumarSingh. Ja! Du hast Recht, das ist genau das Richtige, was ich bedanke. Vielen Dank. – zhang
Ihr könnt das vielleicht als eine Antwort verwenden, um zu vermeiden, dass diese als "unbeantwortet" für andere gehalten wird, die Hilfe suchen ;-) –