Значения по умолчанию для вложенных записей в схеме Avro - PullRequest
0 голосов
/ 01 мая 2018

Этот вопрос / ответ ( Как вложить записи в схему Avro? ) проясняет, как вкладывать сложные типы (в данном случае записи). Тем не менее, мне интересно, если кто-нибудь знает, как установить значения по умолчанию для типов записей. Я получаю сообщения об ошибках, когда в примере, показанном в приведенном выше вопросе, адрес отсутствует, и я предпочел бы, чтобы avro использовал его по умолчанию в пустом словаре или, по крайней мере, в пустой строке - вместо того, чтобы использовать его по умолчанию в вперед.

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете иметь нулевое значение в качестве значения по умолчанию для вложенных объектов в AVRO. Вот так выглядит схема с нулевым значением по умолчанию

{
    "name": "person",
    "type": "record",
    "fields": [
        {"name": "firstname", "type": "string"},
        {"name": "lastname", "type": "string"},
        {
            "name": "address",
            "type": ["null" , {
                        "type" : "record",
                        "name" : "AddressUSRecord",
                        "fields" : [
                            {"name": "streetaddress", "type": "string"},
                            {"name": "city", "type": "string"}
                        ]
                    }],
            "default": null
        }
    ]
}
...