spark join失败,异常为"ClassNotFoundException:org.apache.spark.rdd.RDD $",但在粘贴到Hadoop集群的spart-shell时运行

sha*_*uga 1 scala apache-spark

我试图使用join从基于另一个文件(列表)的值过滤文件(事实)中的记录.

case class CDR(no:Int,nm:String)
val facts = sc.textFile("/temp_scv/a.csv").map( (line) => { val cols = line.split(",");new CDR(cols(0).toInt,cols(1)); }).keyBy( (cdr:CDR) => cdr.no)
val list = sc.textFile("/temp_scv/b.csv").keyBy( (no) => no.toInt)
val filtered = facts.join(list)
Run Code Online (Sandbox Code Playgroud)

当我将其打包为jar并Hadoop cluster使用spark-submit 执行此操作时,它会失败并出现异常

ClassNotFoundException: org.apache.spark.rdd.RDD$
Run Code Online (Sandbox Code Playgroud)

但是当我将它粘贴到spark-shell上时,相同的代码运行正常Hadoop cluster.

sha*_*uga 5

这是一个版本不匹配.我在群集上使用Spark 1.2.0.代码是用sark-core 1.3.0版编译的

使用相同的spark-core版本编译代码解决了这个问题.