如何重用Avro Map定义

时间:2017-09-06 22:19:21

标签: avro

我有一个Avro Schema记录定义,看起来像这样。它包含限制值的地图

{
    "namespace": "MyNamespace",
    "type": "record",
    "name": "AvroObject",
    "fields": [
        {
            "name": "entries1",
            "type": [
                "null",
                {
                    "type": "map",
                    "values": [
                        "null",
                        "long",
                        "string",
                        "boolean"
                    ]
                }
            ],
            "default": null
        },
        {
            "name": "entrie2",
            "type": [
                "null",
                {
                    "type": "map",
                    "values": [
                        "null",
                        "long",
                        "string",
                        "boolean"
                    ]
                }
            ],
            "default": null
        }
    ]
}

我想提取地图定义,以便可以重复使用

{
    "namespace": "MyNamespace",
    "type": "map",
    "name": "MyMap",
    "values": [
        "null",
        "long",
        "string",
        "boolean"
    ]
}

Avro Schema编译器允许我定义记录以供重用,但抱怨地图

  {
        "namespace": "MyNamespace",
        "type": "record",
        "name": "AvroObject",
        "fields": [
            {
                "name": "entries1",
                "type": "MyMap" <---------- NOT ALLOWED
            },
            {
                "name": "entries2",
                "type": "MyMap" <---------- NOT ALLOWED
            }
        ]
    }

如何为地图定义架构?

0 个答案:

没有答案
相关问题