AvroCoder.isDeterministic返回false。
为什么不确定性AvroCoder? 不会的Avro记录总是被编码成相同的字节流?
由于编码器的Avro不确定性的一个阿夫罗记录不能被用作一组由操作的键。 什么是转的Avro的战绩进入了关键的最好方法? 我们应该只使用的Avro记录的JSON表示?
AvroCoder.isDeterministic返回false。
为什么不确定性AvroCoder? 不会的Avro记录总是被编码成相同的字节流?
由于编码器的Avro不确定性的一个阿夫罗记录不能被用作一组由操作的键。 什么是转的Avro的战绩进入了关键的最好方法? 我们应该只使用的Avro记录的JSON表示?
基于Avro的规范 ,它看起来像只数组和地图具有不确定性的二进制编码。
地图看起来像他们非确定性编码有两个原因
数组看起来像他们的非确定性,因为编码
因此,对于没有数组或地图的任何模式,我认为二进制编码应该是确定性的。 所以我认为我们可以只通过继承创建一个确定性的编码器AvroCoder并覆盖AvroCoder.isDeterministic返回true。
AvroDeterministicCoder是我创造这样的编码器的第一次尝试。
AvroCoder
可以检查模式和类型被编码,并决定何时确定性。 它是在GitHub上添加提交#a806df 。
它包括用于确定性地编码阵列和地图时,底层集合是确定性顺序支持。