2016-08-03 8 views
0

私は以下のようなavroスキーマを持っています。スキーマのサンプル/サンプルレコードが必要です。マップタイプの等価avroレコードデータ

スキーマ:

{ 
    "name" : "root", 
    "type" : "record", 
    "fields" : [ 
     { 
     "name" : "sub_rec", 
     "type" : { 
      "type" : "array", 
      "items" : { 
       "type" : "map", 
       "values" : "string" 
      } 
     } 
     } 
    ] 
} 

は、私は以下のようにしようとしたが、それはアブロと

{ 
    "sub_rec" : {[ 
     "key1" : "val1", 
     "key2" : "val2" 
    ]} 
} 
+0

'サブrec'のレコードです。また、それは配列であり、オブジェクト/マップではありません –

+0

あなたはレコードがこのようにすべきであることを意味しますか? { "sub_rec":[{[ "KEY1": "VAL1"、 "KEY2": "VAL2" ]}] }詳細な説明のために – ghosts

答えて

0

ないが、あまりにも馴染み動作しませんが、私は、これは配列として有効なことができないではないことを知っていますキーと値のペアがあります

[ 
    "key1" : "val1", 
    "key2" : "val2" 
] 

ここでは、正しいレコード形式で考えています。

レコードで始まります。私はここにその名前が当てはまるとは思わないが、そうした場合、それはあなたが連れてきたクラスの名前でなければならないかもしれない。その内部

{}

、そのタイプの配列ですsub_recという名前のフィールドがあります。その配列フィールド内

{ "sub_rec" : [] }

、あなたは厳密に文字列である値を持つマップタイプであるアイテムを持っています。あなたはこれらの配列

[ { "key1" : "string-value" }, { "key2" : "string-value" } ] 

に格納されている

{ "key" : "string-value" } 

文字列のみの値でマップレコードを持っている

(後方に行く)

{ 
    "sub_rec" : [ 
     { "key1" : "value" }, 
     { "key2" : "value" } 
    ] 
} 

別の説明その配列は保存されています名前sub_rec` `対"sub_rec"

(上記フルレコードと同じ)

+0

おかげで、それが機能しませんでした。 – ghosts

+0

ネストされたタイプを使用できますか?あなたは '' type ":{" type ":...}}'のように? –

+0

はい、スキーマは正常にコンパイルされました – ghosts