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 be.
Doug On Sat, Dec 15, 2012 at 11:06 PM, Jeremy Lewi <[email protected]> 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
