具有嵌套类型的Avro到Scala案例类注释

时间:2015-09-09 18:20:20

标签: scala avro

我正在使用Avro序列化来处理Kafka上的消息,并使用this annotation method处理一些自定义Scala代码。以下是具有嵌套记录的基本模式:

{
  "type": "record",
  "name": "TestMessage",
  "namespace": "",
  "fields": [
    {"name": "message", "type": "string"},
    {
      "name": "metaData",
      "type": {
        "type": "record",
        "name": "MetaData",
        "fields": [
          {"name": "source", "type": "string"},
          {"name": "timestamp", "type": "string"}
        ]
      }
    }
  ]
}

注释,我认为应该简单地看起来像:

@AvroTypeProvider("schema-common/TestMessage.avsc")
@AvroRecord
case class TestMessage()

消息本身如下所示:

{"message":"hello 1",
 "metaData":{
   "source":"postman",
   "timestamp":"123456789"
 }
}

但是,当我在控制台中记录TestMessage类型或在Kafka使用者中查看输出时,我看到的只有:

{"message":"hello 1"}

而不是我添加的子类型来捕获MetaData。我错过了什么?如果我能提供更多信息,请告诉我 - 谢谢!

0 个答案:

没有答案