ele*_*ias 5 scala apache-spark spark-graphx
这是我的代码:
class FNNode(val name: String)
case class Ingredient(override val name: String, category: String) extends FNNode(name)
val ingredients: RDD[(VertexId, FNNode)] =
sc.textFile(PATH+"ingr_info.tsv").
filter(! _.startsWith("#")).
map(line => line.split('\t')).
map(x => (x(0).toInt ,Ingredient(x(1), x(2))))
Run Code Online (Sandbox Code Playgroud)
当我定义这些变量时没有错误.但是,在尝试执行它时:
ingredients.take(1)
Run Code Online (Sandbox Code Playgroud)
我明白了
org.apache.spark.SparkException: Job aborted due to stage failure: Exception while getting task result: java.io.InvalidClassException: $iwC$$iwC$Ingredient; no valid constructor
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1431)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1419)
Run Code Online (Sandbox Code Playgroud)
根据这里的答案,这似乎与序列化问题有关.但是,如果它确实是序列化问题,我不知道如何解决这个问题.
我沿着代码以下这本书通过他们的方式,所以我会认为这应该在某个时候已经至少工作过?
这解决了我的问题:
class FNNode(val name: String) extends Serializable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |