假设我在 Avro 中有一个简单的键值对,其中的值可以是 a float
、double
、int
等string
;
{"namespace": "com.namespace.kafka.event",
"type": "record",
"name": "RecordName",
"fields": [
{"name": "key", "type": "String"},
{"name": "value", "type": "Any/Object/Bytes???"}
]
}
在 Avro 中表示这一点的最佳方式是什么?
- 有一个字节数组,在 Scala 中以某种方式反序列化并推断类型或添加另一个带有元数据的值字段
- 为每个有值的原始类型创建一个自定义记录类型,并使用 Avro 中的通用记录解析
- 为我们希望表示的每个原始值类型创建一个键/值对。
另一个问题是我们如何在 Scala 中表示它。拥有 Any 类型是一件痛苦的事情,知道类型(如果它的数字等)要好得多,而不必到处进行类型测试......