Hey all,
I am using avro to deserialize a message with 8000 fields from kafka, we
use binary encoding scheme , so the schema is not sent with each poll. We
don't use any schema registry. My problem is I only want 20 fields from
this message. I tried to make my deserialization schema a subset of the
producer schema but it does not work. I get this error :
"org.apache.avro.AvroRuntimeException: Malformed data. Length is negative:
-27". How can I fix this? Should I read the entire message and then filter
what I require ? Thanks you so much for your help.
For instance if my producer schema is like this :
"fields" : [ {
"name" : "CMLS_MRCH_CTRY_CD_NUM_DRVD",
"type" : "int",
"doc" : "decimal(3,0)",
"default" : 0
},{
"name" : "CMLS_ISSR_BIN_DRVD",
"type" : "int",
"doc" : "decimal(6,0)",
"default" : 0
}, {
"name" : "CMLS_DGTL_CMRC_PGM_IND",
"type" : "int",
"doc" : "decimal(1,0)",
"default" : 0
}]
If I only want the first field from the message , my code breaks when I
change the deserialization schema to
"fields" : [ {
"name" : "CMLS_MRCH_CTRY_CD_NUM_DRVD",
"type" : "int",
"doc" : "decimal(3,0)",
"default" : 0
}]