Comment réparer une union de démarrage attendue. Vous avez VALUE_NUMBER_INT lors de la conversion de JSON en Avro sur la ligne de commande?
Je suis en train de valider un fichier JSON à l'aide d'un Avro schéma et d'écrire les Avro fichier. Tout d'abord, j'ai défini les suivantes Avro schéma nommé user.avsc
:
{"namespace": "example.avro",
"type": "record",
"name": "user",
"fields": [
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": ["int", "null"]},
{"name": "favorite_color", "type": ["string", "null"]}
]
}
Ensuite créé un user.json
fichier:
{"name": "Alyssa", "favorite_number": 256, "favorite_color": null}
Et ensuite essayé de l'exécuter:
java -jar ~/bin/avro-tools-1.7.7.jar fromjson --schema-file user.avsc user.json > user.avro
Mais j'obtiens l'exception suivante:
Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-union. Got VALUE_NUMBER_INT
at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:697)
at org.apache.avro.io.JsonDecoder.readIndex(JsonDecoder.java:441)
at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:290)
at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:267)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:155)
at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193)
at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142)
at org.apache.avro.tool.DataFileWriteTool.run(DataFileWriteTool.java:99)
at org.apache.avro.tool.Main.run(Main.java:84)
at org.apache.avro.tool.Main.main(Main.java:73)
Suis-je raté quelque chose? Pourquoi suis-je "Devrait démarrer-union. Obtenu VALUE_NUMBER_INT".
source d'informationauteur Emre Sevinç
Vous devez vous connecter pour publier un commentaire.
Selon l'explication par Doug Cutting
http://avro.apache.org/docs/current/spec.html#json_encoding
Il y a un nouveau JSON codeur dans les œuvres qui devrait répondre à cette question commune:
https://issues.apache.org/jira/browse/AVRO-1582
https://github.com/zolyfarkas/avro