我想知道是否可以有一个可选数组。让我们假设这样的模式:
{
"type": "record",
"name": "test_avro",
"fields" : [
{"name": "test_field_1", "type": "long"},
{"name": "subrecord", "type": [{
"type": "record",
"name": "subrecord_type",
"fields":[{"name":"field_1", "type":"long"}]
},"null"]
},
{"name": "simple_array",
"type":{
"type": "array",
"items": "string"
}
}
]
}
尝试在没有“simple_array”的情况下写入 avro 记录会导致数据文件写入器中出现 NPE。对于子记录,这很好,但是当我尝试将数组定义为可选时:
{"name": "simple_array",
"type":[{
"type": "array",
"items": "string"
}, "null"]
它不会导致 NPE 而是运行时异常:
AvroRuntimeException: Not an array schema: [{"type":"array","items":"string"},"null"]
谢谢。