From b754e83ba07ea68d0f02673b3c1bb3ac997c92e8 Mon Sep 17 00:00:00 2001 From: lifengchao Date: Mon, 9 Sep 2024 09:59:13 +0800 Subject: [PATCH] =?UTF-8?q?TSG-22473=20=E5=AF=B9APPROX=5FQUANTILE=5FHDR?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=88=97=E6=8E=92=E5=BA=8F=E4=BA=A7=E7=94=9F?= =?UTF-8?q?ClassCastException=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HdrHistogramToQuantilePostAggregator.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java b/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java index 5b13b90..71c7494 100644 --- a/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java +++ b/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java @@ -2,8 +2,9 @@ package org.apache.druid.query.aggregation.sketch.HdrHistogram; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Ordering; import com.google.common.collect.Sets; -import org.HdrHistogram.Histogram; +import com.google.common.primitives.Longs; import org.HdrHistogram.HistogramSketch; import org.apache.druid.java.util.common.IAE; import org.apache.druid.query.aggregation.AggregatorFactory; @@ -23,6 +24,14 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator { private final String fieldName; private final float probability; + static final Comparator COMPARATOR = new Ordering(){ + @Override + public int compare(Object o, Object o1) + { + return Longs.compare(((Number) o).longValue(), ((Number) o1).longValue()); + } + }.nullsFirst(); + @JsonCreator public HdrHistogramToQuantilePostAggregator( @JsonProperty("name") String name, @@ -49,13 +58,8 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator { } @Override - public Comparator getComparator() { - return new Comparator(){ - @Override - public int compare(final Long a, final Long b){ - return Long.compare(a, b); - } - }; + public Comparator getComparator() { + return COMPARATOR; } @Nullable