2

使用spark及其JavaAPI。我已将数据加载到JavaRDD<CustomizedDataStructure>这样的位置:

JavaRDD<CustomizedDataStructure> myRDD;

当我这样做时:

myRDD.count();

它向我返回值,表明它确实包含数据,而不是nullRDD。但是在运行时:

myRDD.first();

它应该返回我 a <CustomizedDataStructure>,但它给出了这样的错误:

14:30:39,782 ERROR [TaskSetManager] Task 0.0 in stage 0.0 (TID 0) had a not serializable result:

为什么不是serializable

4

1 回答 1

2

调用 时first(),会将 RDD 的第一个元素复制到驱动程序进程。为此,它必须是可序列化的,默认情况下这意味着实现java.io.Serializable。我的猜测是这个自定义类没有。

于 2014-12-13T01:09:26.863 回答