Darshan Jani created BEAM-10005:
-----------------------------------
Summary: Unable to use ApproximateQuantiles.globally when not
windowed by GlobalWindows
Key: BEAM-10005
URL: https://issues.apache.org/jira/browse/BEAM-10005
Project: Beam
Issue Type: Bug
Components: sdk-java-core
Affects Versions: 2.20.0
Reporter: Darshan Jani
Unable to use ApproximateQuantiles.globally with input windowed not using
GlobalWindows.
To make it run we need to set either
{code:java}
.withoutDefaults()
{code}
or
{code:java}
.asSingletonView()
{code}
Currently we can't call any of the above on ApproximateQuantiles.globally() as
it does not return underlying Combine.globally, but PTransform.
Example failing case:
{code:java}
PCollection<Long> elements = p.apply(GenerateSequence.from(0).to(100)
.withRate(1,Duration.millis(1)).withTimestampFn(Instant::new));
PCollection<List<Long>> input = elements
.apply(Window.into(SlidingWindows.of(Duration.millis(3)).every(Duration.millis(1))))
.apply(ApproximateQuantiles.globally(17));
{code}
It throws expected error from internal Combine.globally() transform:
{code:java}
Default values are not supported in Combine.globally() if the input PCollection
is not windowed by GlobalWindows. Instead, use
Combine.globally().withoutDefaults() to output an empty PCollection if the
input PCollection is empty, or Combine.globally().asSingletonView() to get the
default output of the CombineFn if the input PCollection is empty.
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)