Какое значение по умолчанию для объединения в Java для Apache Avro? - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь установить значение по умолчанию для поля (используя Java), и у меня есть неприятное исключение:

Исключение в потоке "главная" организация. apache .avro.AvroTypeException: недопустимое значение по умолчанию для первого поля: «Andy» не является [«null», «string»]

в орг. apache .avro.Schema.validateDefault (схема. java: 1542)

Документация Apache Avro: союзы говорит:

Союзы, как упомянуто выше, представлены с использованием JSON массивов. Например, ["null", "string"] объявляет схему, которая может быть либо нулевой, либо строковой.

(Обратите внимание, что если для поля записи, тип которого является объединением, указано значение по умолчанию, Тип значения по умолчанию должен соответствовать первому элементу объединения. Таким образом, для объединений, содержащих «null», обычно указывается «null», поскольку значение по умолчанию таких объединений обычно равно null.)

Может, кто-нибудь подскажет, почему тип значения по умолчанию должен соответствовать первому элементу объединения?

1 Ответ

1 голос
/ 26 февраля 2020

кажется, вам нужно изменить на ["string", "null"], так как по умолчанию будет первым, а вашим значением по умолчанию является строка.

...