You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Darshan Jani (Jira)" <ji...@apache.org> on 2022/01/13 07:50:00 UTC

[jira] [Commented] (BEAM-10005) Unable to use ApproximateQuantiles.globally/ApproximateUnique.globally when inputs not windowed by GlobalWindows

    [ https://issues.apache.org/jira/browse/BEAM-10005?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17475161#comment-17475161 ] 

Darshan Jani commented on BEAM-10005:
-------------------------------------

I just forgot to address comments on github PR. We can either close this as unresolved or i can work on to close the github PR comments as it is straightforward to address comments. I can take up to finish after 2 weeks 

> Unable to use ApproximateQuantiles.globally/ApproximateUnique.globally when inputs 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
>            Priority: P3
>              Labels: Clarified
>          Time Spent: 2h 20m
>  Remaining Estimate: 0h
>
> Unable to use ApproximateQuantiles.globally or ApproximateUnique.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()/ApproximateUnique.globally as it does not return underlying Combine.globally, but PTransform or Globally<T> in case of ApproximateUnique.
> 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.20.1#820001)