Avro 模式 - 地图类型作为可选字段

Avro schema - map type as optional field

如何将 avro 架构中的 arrayofmap 设置为可选字段。下面的模式正在运行,但是,如果数据中缺少此字段,则解析失败 org.apache.avro.AvroTypeException: Error converting field - quantities and.Caused by: org.apache.avro.AvroTypeException: Expected array-start. Got VALUE_NULL ` 我只是想确保数据的反序列化通过该字段是否存在于数据中。

{
         "name":"quantities",
         "type":{
            "items":{
               "type":"map",
               "values":"string"
            },
            "type":"array"
         },
         "default" : null,
      }

刚刚自己找到了解决方案。这将使地图字段数组在 avro 模式中成为可选的

{
         "name": "quantities",
         "type": ["null",
             {
                 "type": "array",
                 "items": {
                  "type": "map",
                     "values": "string"
                 }
             }
         ],
         "default": null,
      }