Hi All,

I have avro messages in a Kafka topic and the requirement is that I should
be able to parse messages that can either have schema1 or schema2. I was
thinking to create a union of two records but I am not sure if I am doing
it right and I am obviously running into various exceptions like
ArrayOutOfBoundsException and so on.

so I am going to simplify my problem here. Imagine I have the following as
an Example

*schema1: *

{“type”:“record”,“name”:“hello1”,“fields”:[{“name”:“foo”,“type”:“int”,“
default”:1}]}
*schema2: *

{“type”:“record”,“name”:“hello2”,“fields”:[{“name”:“bar”,“type
”:“int”,“default”:1}]}
and if I do Schema.CreateUnion(Arrays.asList(schema1, schema2)) I get the
following

*unionSchema:*

[{“type”:“record”,“name”:“a”,“fields”:[{“name”:“one”,“type”:
“int”,“default”:1}]},{“type”:“record”,“name”:“b”,“fields”:[{“name”:“one”,“
type”:“int”,“default”:1}]}]

Now say my messages inside kafka topic will be something like this

*message1:*

{"foo": 5}

*message2: *

{"bar": 10}
and if I use unionSchema I am unable to parse it! and I am not sure why? I
can't find any resources on how to do this online. any suggestions will be
great.

Thanks!