【发布时间】:2015-04-02 20:27:21
【问题描述】:
我有一个 RDD 需要访问另一个 RDD 的数据。但是,我总是收到Task not Serializable 错误。我已经扩展了Serializable 类,但是它没有用。代码是:
val oldError = rddOfRatings.aggregate(0.0)((accum, rating) =>
accum + calcError(rating.rating,
us.lookup(rating.user)(0),
it.lookup(rating.product)(0)).abs, _+_ ) / rddSize
其中us、it 和rddOfRatings 是另一个RDD。我不明白的是,如果RDD 是不可变的,那么为什么不允许我允许从另一个RDD 访问RDD?问题似乎出在 us 和 it 上,因为当我将它们删除以用于本地集合时,它工作正常。
谢谢。
【问题讨论】:
标签: scala apache-spark rdd