是否可以将具有相同架构的通用记录转换为特定记录?

时间:2019-01-17 00:28:55

标签: avro

我有一个模式A的GenericRecord对象,它也是一个生成的Avro Java类。我可以通过某种方式将此对象转换为实际的A类型吗?

1 个答案:

答案 0 :(得分:0)

您可以使用GenericRecord将Avro SpecificRecord转换为deepCopy

SpecificData.get().deepCopy(genericRecord.schema, genericRecord)

相反的操作-将SpecificRecord转换为GenericRecord也可以。请注意,此方法不支持架构演变:只有一个架构传递给deepCopy,并且用于读取和写入。这意味着将根据字段的位置复制字段,因此SpecificRecord模式必须与GenericRecord模式完全匹配。

请参见enter image description here