在Avro反序列化后获取不同的数据

时间:2019-04-10 09:35:55

标签: deserialization avro encoder

我们有一个Avro模式,并使用它生成了Java模式类。我们正在使用这些类对数据进行序列化和反序列化。

AvroSerializer<T> tSerializer = AvroSerializer.specificInstance(<Schema>);
tSerializer.toByteArray(<data>);

AvroDeSerializer<T> tDeserilizer= AvroDeSerializer.specificInstance(<Schema>);

tDeserilizer.deserialize(bytes2, 0, bytes2.length, false);

当我们停止重复使用二进制编码器时,前后数据会有所不同,我们开始在反序列化后获得正确的数据。

tSerializer.toByteArray(<data>, reuse = false); // This line solved the issue.

谁能告诉我为什么重复使用会导致此问题。

如果我们使用GenericRecord Avro序列化器/反序列化器,则可以正常工作,但不能与架构类一起使用。

0 个答案:

没有答案