Maps are not a named type in Avro.  The "name" field you specify in the
"map" schemas is ignored.  Only record, enum, and fixed are named types.
 If you wish to refer to a map by name in schemas, define a record with
a map as its single field.  This adds no storage overhead: it will
serialize to the same bytes as the map alone.

Doug

On 03/31/2011 04:56 PM, felix gao wrote:
> I have create a schema as 
> 
> {
> 
>       "namespace": "avro.test",
> 
>       "name": "testTransferObject",
> 
>       "type": "map",
> 
>       "values": {
> 
>       "type": "array",
> 
>       "items" : {
> 
>       "type" : "map",
> 
>       "values" : {
> 
>       "namespace":"avro.test",
> 
>       "name" : "entry",
> 
>       "type" : "record",
> 
>       "fields" : [ 
> 
>       {"name":"Id", "type":"int"}, 
> 
>       {"name":"Category1", "type":"long"},
> 
>       {"name":"Category2", "type":"long"},
> 
>       {"name":"Segment1", "type":"long"},
> 
>       {"name":"Segment2", "type":"long"},
> 
>       {"name":"index", "type":"double"}
> 
>       ]
> 
>       }
> 
>       }
> 
>        }
> 
> }
> 
> 
> 
> The code generated by pecificCompiler.compileSchema only contains entry
> under the package avro.test.  I am wondering where is the Map and Array
> go? And the wrapper object testTransferObject does not seems to be
> generated.
> 
> 
> Thanks,
> 
> 
> Felix
> 
> 
> 

Reply via email to