从案例类转换命名为RDD

时间:2017-08-08 18:39:39

标签: apache-spark spark-jobserver

我在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",

1 个答案:

答案 0 :(得分:0)

事实证明,您无法在新文件中重新声明任何案例类。确切的路径必须匹配它们被认为是相同的,或者它试图将它投射到自身不起作用。我刚将所有案例类定义移动到一个新文件,然后将该文件导入到每个作业中。