Return-Path: Delivered-To: apmail-avro-user-archive@www.apache.org Received: (qmail 57722 invoked from network); 30 Mar 2011 15:53:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 30 Mar 2011 15:53:17 -0000 Received: (qmail 53459 invoked by uid 500); 30 Mar 2011 15:53:17 -0000 Delivered-To: apmail-avro-user-archive@avro.apache.org Received: (qmail 53417 invoked by uid 500); 30 Mar 2011 15:53:17 -0000 Mailing-List: contact user-help@avro.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@avro.apache.org Delivered-To: mailing list user@avro.apache.org Received: (qmail 53409 invoked by uid 99); 30 Mar 2011 15:53:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Mar 2011 15:53:17 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ygnhzeus@gmail.com designates 209.85.216.178 as permitted sender) Received: from [209.85.216.178] (HELO mail-qy0-f178.google.com) (209.85.216.178) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Mar 2011 15:53:12 +0000 Received: by qyk2 with SMTP id 2so1006691qyk.9 for ; Wed, 30 Mar 2011 08:52:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=HpD8r3gba7TLs5thkwdRb6OhPz7ueQp6dDtNGoiYoDs=; b=LoPWBiKEyh6BEpvcNEPuKO3hHn2i/5Y2htMLKZiUGXV7fWEOgwZY+mQ9DfdFjhqpmq zrMebOE3LDCjMaU7K7wDEUu/DFi6IV10gdBMIphyIQPLgy/k6dZAO4PSjXbk0gGtkHCV UjbWXM3M5auI/nQm1moJgTE5Wn68+VsK727X4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=IAZ66x/1NBNgWb51KCr1P4aJsZfX5VR3As1yBqakSSV02rYbpONrto71T6b9CoJQgY o4JtvA6b34QfPntkbq9rXOEyP+2RnoqZXQbuMjjoa0tOcD1+cFbs4+uAWtucwqqYDHJA 2iZS2mPwPVDAOaUz7C+3PmRLh6YgMu0A2+wJk= MIME-Version: 1.0 Received: by 10.229.99.80 with SMTP id t16mr1229713qcn.73.1301500370664; Wed, 30 Mar 2011 08:52:50 -0700 (PDT) Received: by 10.229.142.142 with HTTP; Wed, 30 Mar 2011 08:52:50 -0700 (PDT) In-Reply-To: References: Date: Wed, 30 Mar 2011 23:52:50 +0800 Message-ID: Subject: Re: Populating nested records using GenericRecord From: Felix Xu To: user@avro.apache.org Content-Type: multipart/alternative; boundary=0016367fa1b644be14049fb52b96 --0016367fa1b644be14049fb52b96 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Hi,I have met this problem too,it seems that we have to do like this: GenericRecord t =3D new GenericData.Record(sch.getField("address")); t.put("city","beijing"); r.put("address",t); 2011/3/29 Vivek Hungund > Hi, > > I=92ve got the following schema: > { > "name" : "Profile", > "type" : "record", > "fields" : [ > { "name" : "firstName", "type" : "string" }, > { "name" : "address" , "type" : { > "type" : "record"= , > "name" : > "AddressUSRecord", > "fields" : [ > { > "name" : "address1" , "type" : "string" }, > { > "name" : "address2" , "type" : "string" }, > { > "name" : "city" , "type" : "string" }, > { > "name" : "state" , "type" : "string" }, > { > "name" : "zip" , "type" : "int" }, > { > "name" : "zip4", "type": "int" } > ] > } > } > ] > } > > I=92m using a GenericRecord to represent each Profile that gets created. = To > add a firstName, it=92s easy to do the following: > > Schema sch =3D Schema.parse(schemaFile); > DataFileWriter fw =3D new DataFileWriter(ne= wGenericDatumWriter()).create(sch, > new File(outFile)); > GenericRecord r =3D new GenericData.Record(sch); > r.put(=93firstName=94, =93John=94); > fw.append(r); > > But how would I set the city, for example? How do I represent the key as= a > string that the r.put method can understand? > > Thanks > --0016367fa1b644be14049fb52b96 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: base64 SGksSSBoYXZlIG1ldCB0aGlzIHByb2JsZW0gdG9vLGl0IHNlZW1zIHRoYXQgd2UgaGF2ZSB0byBk byBsaWtlIHRoaXM6PGRpdj48YnI+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxl PSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBmb250LWZhbWlseTogQ2FsaWJyaSwgVmVyZGFu YSwgSGVsdmV0aWNhLCBBcmlhbDsgZm9udC1zaXplOiAxNHB4OyAiPkdlbmVyaWNSZWNvcmQgdCA9 oDxmb250IGNvbG9yPSIjOTMxODY0Ij5uZXc8L2ZvbnQ+oEdlbmVyaWNEYXRhLlJlY29yZChzY2gu Z2V0RmllbGQoJnF1b3Q7YWRkcmVzcyZxdW90OykpOzwvc3Bhbj48L2Rpdj4KPGRpdj48Zm9udCBj bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iQ2FsaWJyaSwgVmVyZGFuYSwgSGVsdmV0aWNh LCBBcmlhbCI+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJib3JkZXItY29s bGFwc2U6IGNvbGxhcHNlOyI+dC5wdXQoJnF1b3Q7Y2l0eSZxdW90OywmcXVvdDtiZWlqaW5nJnF1 b3Q7KTs8L3NwYW4+PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNw YW4iIGZhY2U9IkNhbGlicmksIFZlcmRhbmEsIEhlbHZldGljYSwgQXJpYWwiPjxzcGFuIGNsYXNz PSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsiPnIu cHV0KCZxdW90O2FkZHJlc3MmcXVvdDssdCk7PC9zcGFuPjwvZm9udD48L2Rpdj4KPGRpdj48Zm9u dCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iQ2FsaWJyaSwgVmVyZGFuYSwgSGVsdmV0 aWNhLCBBcmlhbCI+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJib3JkZXIt Y29sbGFwc2U6IGNvbGxhcHNlOyI+PGJyPjwvc3Bhbj48L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBj bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iQ2FsaWJyaSwgVmVyZGFuYSwgSGVsdmV0aWNh LCBBcmlhbCI+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJib3JkZXItY29s bGFwc2U6IGNvbGxhcHNlOyI+PGJyPgo8L3NwYW4+PC9mb250PjxkaXYgY2xhc3M9ImdtYWlsX3F1 b3RlIj4yMDExLzMvMjkgVml2ZWsgSHVuZ3VuZCA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9 Im1haWx0bzpWaXZlay5IdW5ndW5kQGluY2VudGljYS5uZXQiIHRhcmdldD0iX2JsYW5rIj5WaXZl ay5IdW5ndW5kQGluY2VudGljYS5uZXQ8L2E+Jmd0Ozwvc3Bhbj48YnI+CjxibG9ja3F1b3RlIGNs YXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHQgMHB0IDBwdCAwLjhleDtib3JkZXIt bGVmdDoxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpO3BhZGRpbmctbGVmdDoxZXgiPgoKCgo8 ZGl2Pgo8Zm9udCBmYWNlPSJDYWxpYnJpLCBWZXJkYW5hLCBIZWx2ZXRpY2EsIEFyaWFsIj48c3Bh biBzdHlsZT0iZm9udC1zaXplOjExcHQiPkhpLDxicj4KPGJyPgpJknZlIGdvdCB0aGUgZm9sbG93 aW5nIHNjaGVtYTo8YnI+Cns8YnI+CqCgoKCgoCZxdW90O25hbWUmcXVvdDsgOiAmcXVvdDtQcm9m aWxlJnF1b3Q7LDxicj4KoKCgoKCgJnF1b3Q7dHlwZSZxdW90OyA6ICZxdW90O3JlY29yZCZxdW90 Oyw8YnI+CqCgoKCgoCZxdW90O2ZpZWxkcyZxdW90OyA6IFs8YnI+CqCgoKCgoKCgoKCgoKCgoKCg oKCgoKB7ICZxdW90O25hbWUmcXVvdDsgOiAmcXVvdDtmaXJzdE5hbWUmcXVvdDssICZxdW90O3R5 cGUmcXVvdDsgOiAmcXVvdDtzdHJpbmcmcXVvdDsgfSw8YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCg eyAmcXVvdDtuYW1lJnF1b3Q7IDogJnF1b3Q7YWRkcmVzcyZxdW90OyAsICZxdW90O3R5cGUmcXVv dDsgOiB7PGJyPgqgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoCZxdW90O3R5cGUmcXVvdDsgOiAmcXVvdDtyZWNvcmQmcXVvdDssPGJyPgqgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCZxdW90 O25hbWUmcXVvdDsgOiAmcXVvdDtBZGRyZXNzVVNSZWNvcmQmcXVvdDssPGJyPgqgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCZxdW90O2ZpZWxk cyZxdW90OyA6IFs8YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgeyAmcXVvdDtuYW1lJnF1b3Q7IDogJnF1b3Q7YWRk cmVzczEmcXVvdDsgLCAmcXVvdDt0eXBlJnF1b3Q7IDogJnF1b3Q7c3RyaW5nJnF1b3Q7IH0sPGJy PgqgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoHsgJnF1b3Q7bmFtZSZxdW90OyA6ICZxdW90O2FkZHJlc3MyJnF1b3Q7ICwg JnF1b3Q7dHlwZSZxdW90OyA6ICZxdW90O3N0cmluZyZxdW90OyB9LDxicj4KoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKB7 ICZxdW90O25hbWUmcXVvdDsgOiAmcXVvdDtjaXR5JnF1b3Q7ICwgJnF1b3Q7dHlwZSZxdW90OyA6 ICZxdW90O3N0cmluZyZxdW90OyB9LDxicj4KoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKB7ICZxdW90O25hbWUmcXVvdDsg OiAmcXVvdDtzdGF0ZSZxdW90OyAsICZxdW90O3R5cGUmcXVvdDsgOiAmcXVvdDtzdHJpbmcmcXVv dDsgfSw8YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgeyAmcXVvdDtuYW1lJnF1b3Q7IDogJnF1b3Q7emlwJnF1b3Q7 ICwgJnF1b3Q7dHlwZSZxdW90OyA6ICZxdW90O2ludCZxdW90OyB9LDxicj4KoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKB7 ICZxdW90O25hbWUmcXVvdDsgOiAmcXVvdDt6aXA0JnF1b3Q7LCAmcXVvdDt0eXBlJnF1b3Q7OiAm cXVvdDtpbnQmcXVvdDsgfTxicj4KoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoF08YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKB9PGJyPgqgoKCgoKCgoKCgoKCgoKCgoKCg oH08YnI+CqCgoKCgoKCgoKBdPGJyPgp9PGJyPgo8YnI+CkmSbSB1c2luZyBhIEdlbmVyaWNSZWNv cmQgdG8gcmVwcmVzZW50IGVhY2ggUHJvZmlsZSB0aGF0IGdldHMgY3JlYXRlZC4goFRvIGFkZCBh IGZpcnN0TmFtZSwgaXSScyBlYXN5IHRvIGRvIHRoZSBmb2xsb3dpbmc6PGJyPgo8YnI+ClNjaGVt YSCgc2NoID0goFNjaGVtYS5wYXJzZSg8Zm9udCBjb2xvcj0iIzBlMjljMyI+c2NoZW1hRmlsZTwv Zm9udD4pOzxicj4KRGF0YUZpbGVXcml0ZXImbHQ7R2VuZXJpY1JlY29yZCZndDsgZncgPSA8Zm9u dCBjb2xvcj0iIzkzMTg2NCI+bmV3PC9mb250PiBEYXRhRmlsZVdyaXRlciZsdDtHZW5lcmljUmVj b3JkJmd0Oyg8Zm9udCBjb2xvcj0iIzkzMTg2NCI+bmV3PC9mb250PiBHZW5lcmljRGF0dW1Xcml0 ZXImbHQ7R2VuZXJpY1JlY29yZCZndDsoKSkuY3JlYXRlKHNjaCwgPGZvbnQgY29sb3I9IiM5MzE4 NjQiPm5ldzwvZm9udD4gRmlsZShvdXRGaWxlKSk7PGJyPgoKCkdlbmVyaWNSZWNvcmQgciA9IDxm b250IGNvbG9yPSIjOTMxODY0Ij5uZXc8L2ZvbnQ+IEdlbmVyaWNEYXRhLlJlY29yZChzY2gpOzxi cj4Kci5wdXQok2ZpcnN0TmFtZZQsIJNKb2hulCk7PGJyPgpmdy5hcHBlbmQocik7PGJyPgo8YnI+ CkJ1dCBob3cgd291bGQgSSBzZXQgdGhlIGNpdHksIGZvciBleGFtcGxlPyCgSG93IGRvIEkgcmVw cmVzZW50IHRoZSBrZXkgYXMgYSBzdHJpbmcgdGhhdCB0aGUgci5wdXQgbWV0aG9kIGNhbiB1bmRl cnN0YW5kPyCgPGJyPgo8YnI+ClRoYW5rczwvc3Bhbj48L2ZvbnQ+CjwvZGl2PgoKCjwvYmxvY2tx dW90ZT48L2Rpdj48YnI+CjwvZGl2Pgo= --0016367fa1b644be14049fb52b96--