avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doug Cutting <cutt...@apache.org>
Subject Re: Problems with SortedKeyValueFile.Reader: Generic vs Specific Interface
Date Mon, 17 Dec 2012 18:31:02 GMT
A GenericDatumReader will never return a specific record.  Perhaps
this code should use ReflectDatumReader (which will return a java
class if the named class is loaded or else GenericRecord).  The
changes will be deeper, since this builds on AvroKeyValue which also
assumes generic, so I can't tell at a glance how difficult this would


On Sat, Dec 15, 2012 at 11:06 PM, Jeremy Lewi <jeremy@lewi.us> wrote:
> HI avro-users,
> I'm having issues with SortedKeyValueFile.Reader. Even though the return
> type of get is a specific record type, the actual instance returned has type
> GenericRecord. How do I convert this GenericRecord into an instance of my
> specific record?
> Looking at the source code SortedKeyValueFile is using the Generic interface
> to read the data. But the return type for get is V where I have set V to be
> a specific record. e.g
> SortedKeyValueFile.Reader<CharSequence, GraphNodeData> where GraphNodeData
> is one of my avro records.
> I don't understand how  this code compiles since the return type is
> V=GraphNodeData and a GenericRecord can't be cast to a GraphNodeData.
> Thoughts?
> Thanks
> J

View raw message