我在CassandraRow类型的作业之间共享我的RDD,但我现在加入了几个RDD,所以案例类更有意义。
我将RDD保存如下&然后在新工作中检索它。这适用于CassandraRow类型。 CData在两个工作中都是相同的案例类。
runtime.namedObjects.update("rdd:session", NamedRDD(mergedRDD, forceComputation = false, storageLevel = StorageLevel.MEMORY_ONLY))
// val mergedRDD: RDD[CData]
val NamedRDD(dbDayRDD, _, _) = runtime.namedObjects.get[NamedRDD[CData]]("rdd:session").get
Promos Job Failed {
"duration": "0.545 secs",
"classPath": "spark.jobserver.Promos",
"startTime": "2017-08-08T18:07:02.131Z",
"context": "dailycontext",
"result": {
"message": "java.lang.ClassCastException: spark.jobserver.SessionNew$CData$3 cannot be cast to spark.jobserver.Promos$CData$3",
"errorClass": "java.lang.Throwable",
答案 0 :(得分:0)
事实证明,您无法在新文件中重新声明任何案例类。确切的路径必须匹配它们被认为是相同的,或者它试图将它投射到自身不起作用。我刚将所有案例类定义移动到一个新文件,然后将该文件导入到每个作业中。