Python 为什么在DatumReader中有一个指定writers模式的选项?
读取Avro文件时,有一个选项可以指定读取器的模式,以代替已嵌入该文件的模式Python 为什么在DatumReader中有一个指定writers模式的选项?,python,schema,avro,Python,Schema,Avro,读取Avro文件时,有一个选项可以指定读取器的模式,以代替已嵌入该文件的模式 reader=DataFileReader(数据,DatumReader(readers\u schema=readers\u schema)) 我感到困惑的是,还有一个选项可以指定编写器的模式,即 reader=DataFileReader(数据,DatumReader(writers\u schema=writers\u schema,readers\u schema=readers\u schema)) 如果wr
reader=DataFileReader(数据,DatumReader(readers\u schema=readers\u schema))
我感到困惑的是,还有一个选项可以指定编写器的模式,即
reader=DataFileReader(数据,DatumReader(writers\u schema=writers\u schema,readers\u schema=readers\u schema))
如果writers模式已经嵌入到文件中,为什么需要这样做?如果嵌入式模式与传入的writers模式不同,我们会看到什么样的行为?如果您指的是参考python实现,
DatumReader
的writer模式(如果有)。似乎有一个TODO
来使用它来指定预期的模式,但这似乎还没有实现
但是,使用
DatumReader
指定写入程序的架构通常很有用(例如,如果您正在读取用不同架构序列化的容器文件之外的二进制数据)。因此,指定写入程序的架构主要是为了验证文件是否用预期架构序列化?看起来是这样的(尽管该功能尚未实现)。