Ho scritto un programma spark con scala, ma quando uso "spark-submit" per inviare il mio progetto, Ho incontrato java.lang.ClassNotFoundException.java.lang.ClassNotFoundException, quando uso "spark-submit" con un nuovo nome di classe anziché "SimpleApp",
mio file .sbt: nome
name:="Spark Project"
version:="1.0"
scalaVersion:="2.10.5"
libraryDependencies+="org.apache.spark" %% "spark-core" % "1.3.0"
mia del file .scala è SparkProject.scala e in essa il nome dell'oggetto è SparkProject troppo.
/* 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))
}
}
il mio comando di presentare progetto è:
spark-submit --class "SparkProject" --master local[12] target/scala-2.10/spark-project_2.10-1.0.jar
Qualcuno sa come risolvere questo? Finalmente ciò che mi fa confondere è quando provo l'esempio fornire qui [http://spark.apache.org/docs/latest/quick-start.html],it funziona bene.Ma quando costruisco un nuovo progetto e l'invio va male. Qualsiasi aiuto sarà molto apprezzato.
Penso che manchi il 'nome del pacchetto' nel nome della classe nel comando di invio. Credo che nel tuo progetto, il tuo file SparkProject.scala abbia qualcosa come 'package com.example' come prima linea. Se è ... allora questo significa che il nome completo della tua classe sarà 'com.example.SparkProject' quindi dovrai usare '- class" com.example.SparkProject "'. –
@SarveshKumarSingh. Si ! Hai ragione, questa è solo la cosa che nedd.Thanks molto. – zhang
Ragazzi, potreste volerlo mettere come risposta, per evitare di mantenere questo come "senza risposta" ad altri che stanno cercando di aiutare ;-) –