gpt4 book ai didi

scala - RDD 访问另一个 RDD 中的值

转载 作者:行者123 更新时间:2023-12-02 04:22:24 26 4
gpt4 key购买 nike

我有一个 RDD,需要从另一个 RDD 访问数据。但是,我总是收到任务不可序列化错误。我已经扩展了 Serialized 类,但它没有起作用。代码是:

val oldError = rddOfRatings.aggregate(0.0)((accum, rating) =>
accum + calcError(rating.rating,
us.lookup(rating.user)(0),
it.lookup(rating.product)(0)).abs, _+_ ) / rddSize

其中 usitrddOfRatings 是其他 RDD。我不明白的是,如果 RDD 是不可变的,那么为什么它不允许我允许从另一个 RDD< 内访问 RDD/?问题似乎出在 usit 上,因为当我为本地集合删除它们时,它工作正常。

谢谢。

最佳答案

RDD 确实是不可序列化的,因为它们必须捕获变量(例如 SparkContext)。为了解决这个问题,请将三个 RDD 连接在一起,然后您的累加器闭包中将拥有所有必需的值。

关于scala - RDD 访问另一个 RDD 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com