【问题标题】:How to insert null values for an Avro map如何为 Avro 地图插入空值
【发布时间】:2022-11-08 13:18:11
【问题描述】:

我有一个用例,我需要为 Avro Map 允许空值,但似乎 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"]
                            }
                        }
                    }
                ]
            }
        }
    ]
}

【问题讨论】:

  • 我面临同样的问题。任何人有任何想法?

标签: java schema maven-plugin avro option-type


【解决方案1】:

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

"地址":{"test":{"string":"a"}, "test2":{"string":"a"}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    相关资源
    最近更新 更多