Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark上下文创建错误_Scala_Apache Spark_Sbt - Fatal编程技术网

Scala Spark上下文创建错误

Scala Spark上下文创建错误,scala,apache-spark,sbt,Scala,Apache Spark,Sbt,在尝试从我的应用程序创建spark上下文时,我遇到以下一组错误 Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class at org.apache.spark.SparkConf$DeprecatedConfig.<init>(SparkConf.scala:723) at org.apache.spark.SparkConf$.<init>

在尝试从我的应用程序创建spark上下文时,我遇到以下一组错误

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class
        at org.apache.spark.SparkConf$DeprecatedConfig.<init>(SparkConf.scala:723)
        at org.apache.spark.SparkConf$.<init>(SparkConf.scala:571)
        at org.apache.spark.SparkConf$.<clinit>(SparkConf.scala)
        at org.apache.spark.SparkConf.set(SparkConf.scala:92)
        at org.apache.spark.SparkConf.set(SparkConf.scala:81)
        at org.apache.spark.SparkConf.setAppName(SparkConf.scala:118)
        at sparkEnvironment$.<init>(Ticket.scala:33)
        at sparkEnvironment$.<clinit>(Ticket.scala)
        at Ticket$.main(Ticket.scala:40)
        at Ticket.main(Ticket.scala)
    Caused by: java.lang.ClassNotFoundException: scala.Product$class
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 10 more
我尝试在其中创建上下文的片段如下:

object sparkEnvironment {

  Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
  Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)

  val conf : SparkConf = new SparkConf().setAppName("Ticketing").setMaster("local[2]")
  val sc = new SparkContext(conf)
}

object Ticket {
  def main(args: Array[String]): Unit = {

    println(sc)
}
}

默认情况下,Spark 2.2.0是为使用Scala 2.11而构建和分发的。 要用Scala编写应用程序,您需要使用兼容的Scala版本(例如2.11.X)。
您的scala版本是2.12.X。这就是它抛出异常的原因。

在main方法中定义sparkContext,你应该会没事。不,也不行。事实上,我的问题是,Spark上下文在Spark Shell中创建时没有任何错误,并运行代码,但在应用程序(Spark上下文)中创建时,它抛出异常。添加在您的sbt依赖项中提供的内容,如@TheSharek中所述,我以前有过类似的查找错误,请尝试将上下文的创建移动到主方法外部,但移动到
Ticker
对象内部,然后查看它是否有效。
object sparkEnvironment {

  Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
  Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)

  val conf : SparkConf = new SparkConf().setAppName("Ticketing").setMaster("local[2]")
  val sc = new SparkContext(conf)
}

object Ticket {
  def main(args: Array[String]): Unit = {

    println(sc)
}
}