[
https://issues.apache.org/jira/browse/BEAM-2303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16027785#comment-16027785
]
Arvid Heise commented on BEAM-2303:
-----------------------------------
It probably needs similarly be implemented in AvroIO.
> Add SpecificData to AvroCoder
> -----------------------------
>
> Key: BEAM-2303
> URL: https://issues.apache.org/jira/browse/BEAM-2303
> Project: Beam
> Issue Type: Improvement
> Components: sdk-java-core
> Affects Versions: 2.1.0
> Reporter: Arvid Heise
> Assignee: Davor Bonaci
>
> The AvroCoder currently supports GenericData and ReflectData, but not
> SpecificData.
> It should relatively easy to incorporate it by expanding the logic while
> constructing the Reader and Writer by also checking if the type implements
> the SpecificRecord interface. It would greatly speed up (de-)serialization of
> Avro-generated java classes.
> {code}
> return myCoder.getType().equals(GenericRecord.class)
> ? new GenericDatumReader<T>(myCoder.getSchema())
> : new ReflectDatumReader<T>(
> myCoder.getSchema(), myCoder.getSchema(),
> myCoder.reflectData.get());
> {code}
> should be
> {code}
> if (myCoder.getType().equals(GenericRecord.class)) {
> return new
> GenericDatumReader<T>(myCoder.getSchema());
> }
> if
> (SpecificRecord.class.isAssignableFrom(myCoder.getType())) {
> return new
> SpecificDatumReader<T>(myCoder.getType());
> }
> return new ReflectDatumReader<T>(
> myCoder.getSchema(), myCoder.getSchema(),
> myCoder.reflectData.get());
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)