Avro не может прочитать сообщение с новым значением перечисления, хотя было указано значение перечисления по умолчанию.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Avro не может прочитать сообщение с новым значением перечисления, хотя было указано значение перечисления по умолчанию.

Сообщение Anonymous »

У меня есть базовая схема Avro с этим перечислением:

Код: Выделить всё

enum ColorType {
BLUE,
YELLOW,
GREEN,
UNKNOWN
} = UNKNOWN;
Значение UNKNOWN следует использовать в случае обнаружения неизвестного значения перечисления.
У меня есть обновленная схема Avro с тем же перечисление, но расширенное значением BLACK.

Код: Выделить всё

enum ColorType {
BLUE,
YELLOW,
GREEN,
BLACK,
UNKNOWN
} = UNKNOWN;
Теперь я пытаюсь прочитать сообщение Avro в формате JSON, написанное по обновленной схеме, с помощью средства чтения базовой схемы.< /p>
Java-код выглядит следующим образом:

Код: Выделить всё

var jsonDecoder = DecoderFactory.get().jsonDecoder(TreeRecord.SCHEMA$, resourceAsStream);
return new SpecificDatumReader(TreeRecord.SCHEMA$).read(null, jsonDecoder);
Я получаю следующую ошибку:

Код: Выделить всё

org.apache.avro.AvroTypeException: Unknown symbol in enum BLACK
at org.apache.avro.io.JsonDecoder.readEnum(JsonDecoder.java:331)
at org.apache.avro.io.ResolvingDecoder.readEnum(ResolvingDecoder.java:261)
at org.apache.avro.generic.GenericDatumReader.readEnum(GenericDatumReader.java:268)
at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:182)
Почему Avro не может десериализовать обновленное сообщение с помощью базовой схемы, хотя для перечисления было указано значение по умолчанию? Как можно достичь полной совместимости со схемами Avro?

Подробнее здесь: https://stackoverflow.com/questions/762 ... -value-was
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»