如何为Avro映射插入空值



我有一个用例,需要为Avro Map允许null值,但Avro似乎不允许Map值的并集。基本上,我需要实现定义为Map<String,<Optional<String>>>的POJO的功能。

我该如何做到这一点

以下avro架构抛出未找到类型错误:

Error:
org.apache.avro:avro-maven-plugin:1.10.0: schema failed:
No type: {"type":["null","string"]}
{
"namespace": "com.testclass.avro",
"name": "test",
"type": "record",
"fields": [
{
"name": "user",
"type": {
"name": "userdetails",
"type": "record",
"fields": [
{
"name": "isPresent",
"type": "boolean"
},
{
"name": "address",
"type": {
"type": "map",
"name": "address",
"values": {
"type": ["null","string"]
}
}
}
]
}
}
]
}

在json定义中将字符串指定为字符串有助于解决问题。

"address":{"test":{"string":"a"}, "test2":{"string":"a"}}

最新更新