[jira] [Updated] (BEAM-440) Create.values() returns a type-unsafe Coder
[ https://issues.apache.org/jira/browse/BEAM-440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kenneth Knowles updated BEAM-440: - Assignee: Jason White > Create.values() returns a type-unsafe Coder > --- > > Key: BEAM-440 > URL: https://issues.apache.org/jira/browse/BEAM-440 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Reporter: Daniel Halperin >Assignee: Jason White > Labels: newbie, starter > > {{Create.values()}} with no arguments will default to a {{VoidCoder}}, unless > one is set later with {{setCoder(Coder)}}. > Although it will encode its input correctly, this seems like a bad choice in > many cases. E.g., with {{Flatten}}: > {code} > PCollection> initial = p.apply("First", > Create. >of()); > PCollection > second = > p.apply("Second", Create.of("a", "b")).apply(ParDo.of(new > MyAvroDoFn())); > PCollectionList > .of(initial).and(second) > .apply(Flatten. >pCollections()); > {code} > This crashes trying to cast a KV from "Second" to a Void.class. > 1. Suggest throwing a warning in {{getDefaultOutputCoder}} when defaulting to > {{VoidCoder}} for an empty elements list. Should this be an error? > 2. Suggest adding something like {{Create.empty(TypeDescriptor)}} to handle > this case properly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (BEAM-440) Create.values() returns a type-unsafe Coder
[ https://issues.apache.org/jira/browse/BEAM-440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kenneth Knowles updated BEAM-440: - Description: {{Create.values()}} with no arguments will default to a {{VoidCoder}}, unless one is set later with {{setCoder(Coder)}}. Although it will encode its input correctly, this seems like a bad choice in many cases. E.g., with {{Flatten}}: {code} PCollection> initial = p.apply("First", Create. >of()); PCollection > second = p.apply("Second", Create.of("a", "b")).apply(ParDo.of(new MyAvroDoFn())); PCollectionList .of(initial).and(second) .apply(Flatten. >pCollections()); {code} This crashes trying to cast a KV from "Second" to a Void.class. 1. Suggest throwing a warning in {{getDefaultOutputCoder}} when defaulting to {{VoidCoder}} for an empty elements list. Should this be an error? 2. Suggest adding something like {{Create.empty(TypeDescriptor)}} to handle this case properly. was: Create.values() with no arguments will default to a VoidCoder, unless one is set later with #setCoder(Coder). Although it will encode its input correctly, this seems like a bad choice in many cases. E.g., with Flatten: PCollection > initial = p.apply("First", Create. >of()); PCollection > second = p.apply("Second", Create.of("a", "b")).apply(ParDo.of(new MyAvroDoFn())); PCollectionList .of(initial).and(second) .apply(Flatten. >pCollections()); This crashes trying to cast a KV from "Second" to a Void.class. 1. Suggest throwing a warning in #getDefaultOutputCoder when defaulting to VoidCoder for an empty elements list. Should this be an error? 2. Suggest adding something like Create.empty(TypeDescriptor) to handle this case properly. > Create.values() returns a type-unsafe Coder > --- > > Key: BEAM-440 > URL: https://issues.apache.org/jira/browse/BEAM-440 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Reporter: Daniel Halperin > Labels: newbie, starter > > {{Create.values()}} with no arguments will default to a {{VoidCoder}}, unless > one is set later with {{setCoder(Coder)}}. > Although it will encode its input correctly, this seems like a bad choice in > many cases. E.g., with {{Flatten}}: > {code} > PCollection > initial = p.apply("First", > Create. >of()); > PCollection > second = > p.apply("Second", Create.of("a", "b")).apply(ParDo.of(new > MyAvroDoFn())); > PCollectionList > .of(initial).and(second) > .apply(Flatten. >pCollections()); > {code} > This crashes trying to cast a KV from "Second" to a Void.class. > 1. Suggest throwing a warning in {{getDefaultOutputCoder}} when defaulting to > {{VoidCoder}} for an empty elements list. Should this be an error? > 2. Suggest adding something like {{Create.empty(TypeDescriptor)}} to handle > this case properly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (BEAM-440) Create.values() returns a type-unsafe Coder
[ https://issues.apache.org/jira/browse/BEAM-440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Manu Zhang updated BEAM-440: Assignee: (was: Manu Zhang) > Create.values() returns a type-unsafe Coder > --- > > Key: BEAM-440 > URL: https://issues.apache.org/jira/browse/BEAM-440 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Reporter: Daniel Halperin > Labels: newbie, starter > > Create.values() with no arguments will default to a VoidCoder, unless one is > set later with #setCoder(Coder). > Although it will encode its input correctly, this seems like a bad choice in > many cases. E.g., with Flatten: > PCollection> initial = p.apply("First", > Create. >of()); > PCollection > second = > p.apply("Second", Create.of("a", "b")).apply(ParDo.of(new > MyAvroDoFn())); > PCollectionList > .of(initial).and(second) > .apply(Flatten. >pCollections()); > This crashes trying to cast a KV from "Second" to a Void.class. > 1. Suggest throwing a warning in #getDefaultOutputCoder when defaulting to > VoidCoder for an empty elements list. Should this be an error? > 2. Suggest adding something like Create.empty(TypeDescriptor) to handle this > case properly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (BEAM-440) Create.values() returns a type-unsafe Coder
[ https://issues.apache.org/jira/browse/BEAM-440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Daniel Halperin updated BEAM-440: - Labels: newbie starter (was: ) > Create.values() returns a type-unsafe Coder > --- > > Key: BEAM-440 > URL: https://issues.apache.org/jira/browse/BEAM-440 > Project: Beam > Issue Type: Bug > Components: sdk-java-core >Reporter: Daniel Halperin > Labels: newbie, starter > > Create.values() with no arguments will default to a VoidCoder, unless one is > set later with #setCoder(Coder). > Although it will encode its input correctly, this seems like a bad choice in > many cases. E.g., with Flatten: > PCollection> initial = p.apply("First", > Create. >of()); > PCollection > second = > p.apply("Second", Create.of("a", "b")).apply(ParDo.of(new > MyAvroDoFn())); > PCollectionList > .of(initial).and(second) > .apply(Flatten. >pCollections()); > This crashes trying to cast a KV from "Second" to a Void.class. > 1. Suggest throwing a warning in #getDefaultOutputCoder when defaulting to > VoidCoder for an empty elements list. Should this be an error? > 2. Suggest adding something like Create.empty(TypeDescriptor) to handle this > case properly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)