1
Kryo 시리얼 라이저를 사용하여 특정 유형의 목록을 쓰려고하는데 읽기/쓰기를 시도 할 때 오류가 발생합니다. 내가 KryoRegistratorkryo 시리얼 라이저를 사용하여 특정 유형의 목록을 작성하는 방법
위해 아파치 스파크에 의해 제공되는 소스를 사용하고나는 쓰기를 시도하고 목록 ArrayList에 또는 목록의 다른 유형이 될 수 타입 List<A>
이다
코드
Class FakeRegsitrator implements KryoRegistrator{
@Override
public void registerClasses(Kryo kryo) {
CollectionSerializer listSerializer = new CollectionSerializer();
listSerializer.setElementClass(A.class, kryo.getSerializer(A.class));
listSerializer.setElementsCanBeNull(false);
kryo.register(A.class, new Serializer<A>(true, true) {
public void write(Kryo kryo, Output output, A a) {
output.writeLong(a.getFieldA)
output.WriteString(a.getFieldB)
}
public A read(Kryo kryo, Input input, Class type) {
return new A(input.readLong(), input.readString())
}
}
}
나는 무엇이다 여기 없습니까?
kryo.register(ArrayList.class);
in read method use
kryo.readObject(input, ArrayList.class);
in write method use
kryo.writeObject(output, entry.getArchivePortions());
: