Hi,
I want to convert incoming data to Avro and JSON (and later Parquet). Avro
conversion is working okay, but JSON conversion throws the following error that
I don’t understand:
Exception in thread "main" java.lang.RuntimeException: Not the Json schema:
{"type":"record","name":"Torperf","namespace":"converTor.torperf","fields":[{"name":"descriptor_type","type":"string","default":"torperf
1.0"},
[ … omitted for brevity …]
{"name":"circ_id","type":["null","int"],"doc":"metrics-lib/TorperfResult: int
getCircId()"},{"name":"used_by","type":["null","int"],"doc":"metrics-lib/TorperfResult:
int getUsedBy()"}],"aliases":["torperfResult"]}
at org.apache.avro.data.Json$ObjectWriter.setSchema(Json.java:117)
at converTor.WriterObject.<init>(WriterObject.java:116)
at converTor.TypeWriter.get(TypeWriter.java:31)
at converTor.ConverTor.main(ConverTor.java:249)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
… but that schema is indeed the schema that I want to use.
This is a snippet of my code:
File schemaFile = new File("schema/jsonSchema.avsc");
Schema.Parser parser = new Schema.Parser();
Schema mySchema = parser.parse(schemaFile) ;
Json.ObjectWriter jsonDatumWriter = new Json.ObjectWriter();
jsonDatumWriter.setSchema(mySchema);
OutputStream out = new FileOutputStream(outputFile);
Encoder encoder = EncoderFactory.get().jsonEncoder(mySchema, out);
Can somebody give me a hint?
Thanks,
Thomas