2015-02-27 4 views
0

Я следую инструкциям на AVRO сайте и создать JSON и файл схемы следующим образом (как в текстовых файлах):Ошибка при преобразовании файла JSON в AVRO

JSON файл

{"name": "user", "favorite_number": null, "favorite_color": "red"} 
{"name": "user", "favorite_number": null, "favorite_color": "green"} 
{"name": "user", "favorite_number": null, "favorite_color": "purple"} 
{"name": "user", "favorite_number": null, "favorite_color": null} 

и файл схема:

{"namespace": "example.avro", 
"type": "record", 
"name": "User", 
"fields": [ 
{"name": "name", "type": "string"}, 
{"name": "favorite_number", "type": ["int", "null"]}, 
{"name":"favorite_color", "type": ["string", "null"]} 
] 
} 

Когда я пытаюсь создать Avro файл, используя файл avro-tools банки, я получаю следующее сообщение об ошибке:

Exception in thread "main" org.apache.avro.AvroTypeException: Expected start-uni 
on. Got VALUE_STRING 
    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:29 
0) 
    at org.apache.avro.io.parsing.Parser.advance(Parser.java:88) 
    at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:2 
67) 
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.ja 
va:155) 
    at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumRead 
er.java:193) 
    at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumRea 
der.java:183) 
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.ja 
va:151) 
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.ja 
va: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) 

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

ответ

0

Исправьте первые три строки вашего входа JSON, как показано ниже, и попробуйте.

{"name": "user", "favorite_number": null, "favorite_color":{"string": "red"}} 
{"name": "user", "favorite_number": null, "favorite_color":{"string": "green"}} 
{"name": "user", "favorite_number": null, "favorite_color":{"string":"purple"}} 

 Смежные вопросы

  • Нет связанных вопросов^_^