从我的想法开始火花作业时,我收到以下错误: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以及为什么会出现此错误? 感谢
答案 0 :(得分:0)
我遇到了类似的问题(在java上使用spark流)。通过添加sparkConf.setJars解决(new String [] {“your-jar.jar”});