2017-06-02 239 views
1

我是Apache Avro的新手。我通過使用Parsers來讀取模式來序列化數據。以下詳細信息包含我的模式。我需要在同一個模式中包含多個記錄。如何在Avro模式中包含多個記錄?

{ "namespace": "tutorial.model", 
    "type": "record", 
    "name": "Employee", 
    "fields": [ 
       {"name": "firstName", "type": "string"}, 
       {"name": "lastName", "type": "string"}, 
       {"name": "age", "type": "int"}, 
       {"name": "id", "type": "string"}, 
       {"name" : "company", "type" : "string"} 
      ] 
} 

回答

0

您可以按照此處說明GettingStartedGuide來定義嵌入記錄。

所以,你的模式將是這樣的

{ 
    "type" : "record", 
    "name" : "userInfo", 
    "namespace" : "my.example", 
    "fields" : [{"name" : "username", 
       "type" : "string", 
       "default" : "NONE"}, 

       {"name" : "age", 
       "type" : "int", 
       "default" : -1}, 

       {"name" : "phone", 
        "type" : "string", 
        "default" : "NONE"}, 

       {"name" : "housenum", 
        "type" : "string", 
        "default" : "NONE"}, 

        {"name" : "address", 
        "type" : { 
         "type" : "record", 
         "name" : "mailing_address", 
         "fields" : [ 
          {"name" : "street", 
          "type" : "string", 
          "default" : "NONE"}, 

          {"name" : "city", 
          "type" : "string", 
          "default" : "NONE"}, 

          {"name" : "state_prov", 
          "type" : "string", 
          "default" : "NONE"}, 

          {"name" : "country", 
          "type" : "string", 
          "default" : "NONE"}, 

          {"name" : "zip", 
          "type" : "string", 
          "default" : "NONE"} 
          ]}, 
          "default" : {} 
       } 
    ] 
} 
相關問題