如何解决如何序列化对象列表,这些对象是avro生成的实体类型
尝试以下代码时出现序列化错误
public Result implements Serializable {
ArrayList<AvroGeneratedEntity> entities;
Map<Integer,String> stringMap;
}
public SomeBo {
public void aMethod () {
......
JavaRdd<Result> resultJavaRDD = rdd.map(f -> {
});
resultJavaRDD.repartition(1).collect(); // Error throws
......
}
}
根据错误消息,这是因为AvroGeneratedEntity无法序列化
Serialization stack:
- object not serializable (class: com.testing.AvroGeneratedEntity,value:
.....
- field (class: com.testing.AvroGeneratedEntity,name: entities,type: class java.util.ArrayList)
- object (class com.testing.AvroGeneratedEntity,com.testing.AvroGeneratedEntity@390fcb0c)
at org.apache.spark.serializer.SerializationDebugger$.improveException(SerializationDebugger.scala:40)
at org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:47)
at org.apache.spark.serializer.SerializationStream.writeValue(Serializer.scala:147)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。