Причина в том, что файл avro не содержит одинаковых данных, если они получены этими двумя различными способами, и это ожидаемое поведение.
В качестве теста используйте эту команду для создания файла avro
java -jar avro-tools-1.8.2.jar fromjson --schema-file avroschema.json
testCheck.json > myFile2.auro
Теперь прочитайте это и напечатайте на Java, и обратите внимание, что он не содержит ТОЛЬКО AVRO RECORD
Он также содержит scme (как минимум) - см. Приведенные ниже строковые данные.
Это означает, что данные в файлах AVRO отличаются при генерировании с использованием инструментов acro и при использовании avro converter
bjavro.schemaœ{"type":"record","name":"Acme","fields":[{"name":"username","type":"string"}]}avro.c
Проверка в API инструментов завершается неудачно, когда вы пытаетесь прочитать avro-файл, сгенерированный из конвертера с помощью команды tojson .
Теперь правильная команда для чтения «json» с помощью инструментов acro, когда файл генерируется с помощью конвертера, - fragtojson . Обратите внимание, что мы на самом деле читаем только фрагмент JSON (здесь записана авро)
java -jar avro-tools-1.8.2.jar fragtojson --schema-file avroschema.json myFile.avro > myFile21.json
Еще одна мысль здесь - избегать использования инструментов AVRO в целом и создать свой собственный исполняемый файл jar с конвертером в качестве зависимости, и использовать его для чтения записей AVRO JSON.