Поле «по умолчанию» в схеме avro используется для случаев эволюции схемы. См. http://avro.apache.org/docs/current/spec.html#Schema+Resolution для своих правил.
Значение по умолчанию не используется при сериализации (записи) данных. Он используется при обессоливании (считывании) avro-данных, которые были созданы с помощью схемы, в которой отсутствует поле.
Например, если у нас есть данные, которые были получены с этой схемой:
{
"type":"record",
"name":"Product",
"fields":[
{"name":"product_id","type": "long"}
]
}
и мыхотите прочитать (разрешить), используя расширенную схему, которая также содержит поле product_name, например:
{
"type":"record",
"name":"Product",
"fields":[
{"name":"product_id","type": "long"},
{"name":"product_name","type": "string","default":"old product data"},
]
}
Значение по умолчанию будет использоваться для установки значения для поля 'product_name', которое отсутствует в данных. , поскольку данные были записаны с использованием первой схемы.