You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fj...@apache.org on 2019/01/17 22:10:01 UTC
[incubator-druid] branch master updated: datasketches quantiles
module - implemented makeAggregateCombiner (#6882)
This is an automated email from the ASF dual-hosted git repository.
fjy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new 161dac1 datasketches quantiles module - implemented makeAggregateCombiner (#6882)
161dac1 is described below
commit 161dac1d2380cfe2a7742447dc5b77c8dccf6ffb
Author: Alexander Saydakov <sa...@oath.com>
AuthorDate: Thu Jan 17 14:09:55 2019 -0800
datasketches quantiles module - implemented makeAggregateCombiner (#6882)
* implemented makeAggregateCombiner
* fixed import order
---
.../quantiles/DoublesSketchAggregatorFactory.java | 39 ++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
index 80f286b..4b28e26 100644
--- a/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
+++ b/extensions-core/datasketches/src/main/java/org/apache/druid/query/aggregation/datasketches/quantiles/DoublesSketchAggregatorFactory.java
@@ -25,17 +25,20 @@ import com.yahoo.sketches.Util;
import com.yahoo.sketches.quantiles.DoublesSketch;
import com.yahoo.sketches.quantiles.DoublesUnion;
import org.apache.druid.java.util.common.IAE;
+import org.apache.druid.query.aggregation.AggregateCombiner;
import org.apache.druid.query.aggregation.Aggregator;
import org.apache.druid.query.aggregation.AggregatorFactory;
import org.apache.druid.query.aggregation.AggregatorFactoryNotMergeableException;
import org.apache.druid.query.aggregation.AggregatorUtil;
import org.apache.druid.query.aggregation.BufferAggregator;
+import org.apache.druid.query.aggregation.ObjectAggregateCombiner;
import org.apache.druid.query.cache.CacheKeyBuilder;
import org.apache.druid.segment.ColumnSelectorFactory;
import org.apache.druid.segment.ColumnValueSelector;
import org.apache.druid.segment.NilColumnValueSelector;
import org.apache.druid.segment.column.ValueType;
+import javax.annotation.Nullable;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -138,6 +141,42 @@ public class DoublesSketchAggregatorFactory extends AggregatorFactory
}
@Override
+ public AggregateCombiner makeAggregateCombiner()
+ {
+ return new ObjectAggregateCombiner<DoublesSketch>()
+ {
+ private final DoublesUnion union = DoublesUnion.builder().setMaxK(k).build();
+
+ @Override
+ public void reset(final ColumnValueSelector selector)
+ {
+ union.reset();
+ fold(selector);
+ }
+
+ @Override
+ public void fold(final ColumnValueSelector selector)
+ {
+ final DoublesSketch sketch = (DoublesSketch) selector.getObject();
+ union.update(sketch);
+ }
+
+ @Nullable
+ @Override
+ public DoublesSketch getObject()
+ {
+ return union.getResult();
+ }
+
+ @Override
+ public Class<DoublesSketch> classOfObject()
+ {
+ return DoublesSketch.class;
+ }
+ };
+ }
+
+ @Override
@JsonProperty
public String getName()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org