[
https://issues.apache.org/jira/browse/BEAM-1276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aviem Zur reassigned BEAM-1276:
-------------------------------
Assignee: Aviem Zur (was: Kenneth Knowles)
> 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
> Assignee: Aviem Zur
> 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)