从想法 - 版本问题启动火花作业时出错? java.lang.ClassCastException

时间:2016-08-06 10:58:11

标签: apache-spark

从我的想法开始火花作业时,我收到以下错误:java.lang.ClassCastException: cannot assign instance of scala.collection.immutable.List$SerializationProxy to field org.apache.spark.rdd.RDD.org$apache$spark$rdd$RDD$$dependencies_ of type scala.collection.Seq in instance of org.apache.spark.rdd.MapPartitionsRDD

我从this post了解到它可能是版本冲突,但我不知道我的案例中发生了什么

使用spark-submit工作开始工作就好了。我使用的是spark 2.0.0。这是我的sbt文件

scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.0.0"

工作示例:

object WordCount {
  def main(args: Array[String]) {
    val sparkSession = SparkSession.builder().appName("Word2vec").master("spark://quentin:7077").getOrCreate()
    import sparkSession.implicits._
    val input = sparkSession.read.text("/home/quentin/Downloads/wiki.fr.mini.text").as[String]
    input.flatMap(_.split(" ")).groupBy($"value").count().show()
  }
}

我不清楚从这个想法开始工作时会发生什么。我知道spark-submit会向主人发送一个jar,其中所有依赖都需要奴隶完成这项工作,但是当我们刚刚启动主类时会发生什么?如何发布lib以及为什么会出现此错误? 感谢

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题(在java上使用spark流)。通过添加sparkConf.setJars解决(new String [] {“your-jar.jar”});