如何创建avro架构?

时间:2015-03-02 03:00:46

标签: json apache avro

我想知道如何在json中使用此文档的avro架构。

tweet.json:

{ "_id" : { "$oid" : "54d148b471eb130b1e8b4567" }, "nome" : "Marco Correia", "tweet" : "This and a simple tweet",  "datahora" : "Tue Feb 03 22:15:54 +0000 2015" }

我正在制定这样一个计划,但却给出了错误。

schema.avsc:

{
  "type" : "record",
  "name" : "twitter_schema",
  "namespace" : "com.miguno.avro",
  "fields" : [
    {
        "name" : "_id", "type": "array","items": "bytes"
    },

    { "name" : "nome","type" : "string","doc" : "Name of the user account on Twitter.com" },
    { "name" : "tweet", "type" : "string","doc" : "The content of the user's Twitter message" },
    { "name" : "datahora", "type" : "string","doc" : "Unix epoch time in seconds"}

    ],
  "doc:" : "A basic schema for storing Twitter messages"
}

1 个答案:

答案 0 :(得分:0)

以下架构应该有效

{
    "type" : "record",
    "name" : "twitter_schema",
    "namespace" : "com.miguno.avro",
    "fields" : [

        {"name": "_id", "type":
            {   
                "type" : "record", "name" : "Id", "namespace" : "com.miguno.avro",
                "fields" : [
                    { "name" : "oid","type" : "string"}
                ]
            }
        },
        { "name" : "nome","type" : "string","doc" : "Name of the user account on Twitter.com" },
        { "name" : "tweet", "type" : "string","doc" : "The content of the user's Twitter message" },
        { "name" : "datahora", "type" : "string","doc" : "Unix epoch time in seconds"}

  ]
 }