मैं एचडीएफएस (ड्रिल के साथ पूछताछ करने के लिए) में बहुत सारे एवरो दस्तावेज़ों में लोचदार खोज से निर्यात किए गए डेटा पर एक स्कीमा लागू करने के लिए अपाचे एवरो का उपयोग करने की कोशिश कर रहा हूं। मैं एवरो चूकजेसन दस्तावेजों के एवरो सीरियलाइजेशन के साथ परेशानी फ़ील्ड गुम फ़ील्ड
इस स्कीमा को देखते हुए के साथ कुछ समस्या हो रही है:
{
"namespace" : "avrotest",
"type" : "record",
"name" : "people",
"fields" : [
{"name" : "firstname", "type" : "string"},
{"name" : "age", "type" :"int", "default": -1}
]
}
मैं उम्मीद थी कि एक json दस्तावेज़ जैसे {"firstname" : "Jane"}
उम्र क्षेत्र के लिए -1
का डिफ़ॉल्ट मान का उपयोग कर धारावाहिक की जाएगी।
डिफ़ॉल्ट: इस क्षेत्र के लिए एक डिफ़ॉल्ट मान, उदाहरण पढ़ने के दौरान उपयोग किया जाता है जिसमें इस क्षेत्र (वैकल्पिक) की कमी होती है।
बहरहाल, यह तो होना ही
java -jar avro-tools-1.8.0.jar fromjson --schema-file p2.avsc jane.json > jane.avro
Exception in thread "main" org.apache.avro.AvroTypeException: Expected int. Got END_OBJECT
at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:697)
at org.apache.avro.io.JsonDecoder.readInt(JsonDecoder.java:172)
at org.apache.avro.io.ValidatingDecoder.readInt(ValidatingDecoder.java:83)
at org.apache.avro.generic.GenericDatumReader.readInt(GenericDatumReader.java:511)
at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:182)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:152)
at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:240)
at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:230)
at org.apache.avro.generic.GenericDatumReader.readWithoutConversion(GenericDatumReader.java:174)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:152)
at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:144)
at org.apache.avro.tool.DataFileWriteTool.run(DataFileWriteTool.java:99)
at org.apache.avro.tool.Main.run(Main.java:87)
at org.apache.avro.tool.Main.main(Main.java:76)
यह संभव है नहीं लगता है, या मैं कुछ याद आ रही है?
अग्रिम धन्यवाद
मैं एक ही समस्या – imehl
हाँ, मुझे इसके बारे में बता दिया है :( –
ऐसा लगता है कि इस के लिए प्रतिबद्ध https://github.com/apache/avro/commit/7e4037de2a891fa738aaf8a4f करने से पहले c56f424d6c6833a # diff-c7934590c625ba67bf1b2ad5511a4f58R97 (https://issues.apache.org/jira/browse/AVRO-388) एवरो जेनेरिकडेटम रीडर स्किप किए गए फ़ील्ड के लिए डिफ़ॉल्ट मानों का उपयोग करने में सक्षम था, लेकिन अब यह नहीं कर सकता है। –