[
https://issues.apache.org/jira/browse/BEAM-233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15269199#comment-15269199
]
Kenneth Knowles commented on BEAM-233:
--------------------------------------
I should also note two other options:
# It is probably pretty easy to just do {{registery.registerCoder(Foo.class,
AvroCoder.of(Foo.class))}}
# The default [fallback
CoderProvider|https://github.com/apache/incubator-beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java#L87]
tries {{ProtoCoder}} followed by {{SerializableCoder}}. I don't recall the
reason we did not put {{AvroCoder}} in the list, but it could be revisited.
> Make Registering Avro Specific Records Easier
> ---------------------------------------------
>
> Key: BEAM-233
> URL: https://issues.apache.org/jira/browse/BEAM-233
> Project: Beam
> Issue Type: New Feature
> Components: sdk-java-core
> Reporter: Jesse Anderson
> Labels: starter
>
> There should be a helper method to make it easier to register Avro specific
> record classes. This will be the most common type that needs to be
> registered. The code would look something like:
> {code:java}
> public class AvroHelper {
> public static void registerAvro(Pipeline p, Class<? extends
> SpecificRecordBase> clazz) {
> p.getCoderRegistry().registerCoder(clazz, new CoderFactory() {
> @Override
> public Coder<?> create(List<? extends Coder<?>> componentCoders) {
> return AvroCoder.of(clazz);
> }
> @Override
> public List<Object> getInstanceComponents(Object value) {
> return null;
> }
> });
> }
> }
> {code}
> With usage:
> {code:java}
> Pipeline p = Pipeline.create(options);
>
> AvroHelper.registerAvro(p, LogEntry.class);
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)