我正在处理 2 个不同的 avro 文件:
avroConsumer:
{"namespace": "autoGenerated.avro",
"type": "record",
"name": "UserConsumer",
"fields": [
{"name": "Name", "type": "string"},
{"name": "Surname", "type":["null","string"],"default": null},
{"name": "favorite_number", "type": ["long", "null"]},
{"name": "favorite_color", "type": ["string", "null"]}
]
}
avro制片人:
{"namespace": "autoGenerated.avro",
"type": "record",
"name": "UserProducer",
"fields": [
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": ["int", "null"]},
{"name": "favorite_color", "type": ["string", "null"]}
]
}
在编译过程中会发生反序列化错误,但我认为在消费者中定义“默认”属性应该使其正常工作。
参考:http ://avro.apache.org/docs/current/spec.html#Schema+Resolution
如果读取器的记录模式有一个包含默认值的字段,而写入器的模式没有同名的字段,那么读取器应该使用其字段中的默认值。
你有什么想法吗?我可以定义与生产者 avro 文件不同的消费者 avro 文件吗?