使用spark
及其 Java
API。我已将数据加载到 JavaRDD<CustomizedDataStructure>
像这样:
JavaRDD<CustomizedDataStructure> myRDD;
当我这样做时:
myRDD.count();
它向我返回值,表明它确实包含数据,而不是 null
RDD。
但是运行时:
myRDD.first();
它应该返回给我 <CustomizedDataStructure>
,但它给出了这样的错误:
14:30:39,782 ERROR [TaskSetManager] Task 0.0 in stage 0.0 (TID 0) had a not serializable result:
为什么不是 serializable
?
最佳答案
当您调用first()
时,您会导致RDD的第一个元素被复制到驱动程序进程。为此,它必须是可序列化的,默认情况下这意味着实现java.io.Serialized
。我的猜测是这个自定义类没有。
关于java - Spark-无法使用first()访问JavaRDD中的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27450944/