[ 
https://issues.apache.org/jira/browse/BEAM-1276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aviem Zur reassigned BEAM-1276:
-------------------------------

    Assignee:     (was: Aviem Zur)

> StateSpecs.combiningValue interface is very awkward to use
> ----------------------------------------------------------
>
>                 Key: BEAM-1276
>                 URL: https://issues.apache.org/jira/browse/BEAM-1276
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Daniel Mills
>            Priority: Minor
>
> Using StateSpecs.combiningValue with built in combiners is very verbose.  For 
> example, to keep a running sum of ints:
> {code}
> @StateId("count")
> private final StateSpec<Object, AccumulatorCombiningState<Integer, int[], 
> Integer>> countSpec =
>     StateSpecs.combiningValue(
>           Sum.ofIntegers().getAccumulatorCoder(pipeline.getCoderRegistry(), 
> VarIntCoder.of()), Sum.ofIntegers());
> {code}
> This involves getting a reference to the pipeline into the DoFn, 
> guessing/finding the proper type parameters for Sum.ofIntegers(), and 
> manually pulling the accumulator coder out.
> For combiners like Sum.ofIntegers() that have a fixed accumulator, the 
> combiningValue call should be able to deduce that.  Additionally, it would be 
> nice to remove the type of the accumulator from the StateSpec object, since 
> the user only needs the input and output types in their code.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to