@Override public InternalAggregation buildEmptyAggregation() { return new InternalTDigestPercentileRanks(name, keys, new TDigestState(compression), keyed, formatter, pipelineAggregators(), metaData()); }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalTDigestPercentiles(name, keys, new TDigestState(compression), keyed, formatter, pipelineAggregators(), metaData()); } }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalMedianAbsoluteDeviation(name, pipelineAggregators(), metaData(), format, new TDigestState(compression)); }
@Override protected LeafBucketCollector getLeafCollector(LeafReaderContext ctx, LeafBucketCollector sub) throws IOException { if (valuesSource == null) { return LeafBucketCollector.NO_OP_COLLECTOR; } final BigArrays bigArrays = context.bigArrays(); final SortedNumericDoubleValues values = valuesSource.doubleValues(ctx); return new LeafBucketCollectorBase(sub, values) { @Override public void collect(int doc, long bucket) throws IOException { valueSketches = bigArrays.grow(valueSketches, bucket + 1); TDigestState valueSketch = valueSketches.get(bucket); if (valueSketch == null) { valueSketch = new TDigestState(compression); valueSketches.set(bucket, valueSketch); } if (values.advanceExact(doc)) { final int valueCount = values.docValueCount(); for (int i = 0; i < valueCount; i++) { final double value = values.nextValue(); valueSketch.add(value); } } } }; }
@Override public InternalAggregation doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { final TDigestState valueMerged = new TDigestState(valuesSketch.compression()); for (InternalAggregation aggregation : aggregations) { final InternalMedianAbsoluteDeviation madAggregation = (InternalMedianAbsoluteDeviation) aggregation; valueMerged.add(madAggregation.valuesSketch); } return new InternalMedianAbsoluteDeviation(name, pipelineAggregators(), metaData, format, valueMerged); }
static double computeMedianAbsoluteDeviation(TDigestState valuesSketch) { if (valuesSketch.size() == 0) { return Double.NaN; } else { final double approximateMedian = valuesSketch.quantile(0.5); final TDigestState approximatedDeviationsSketch = new TDigestState(valuesSketch.compression()); valuesSketch.centroids().forEach(centroid -> { final double deviation = Math.abs(approximateMedian - centroid.mean()); approximatedDeviationsSketch.add(deviation, centroid.count()); }); return approximatedDeviationsSketch.quantile(0.5); } }
public static TDigestState read(StreamInput in) throws IOException { double compression = in.readDouble(); TDigestState state = new TDigestState(compression); int n = in.readVInt(); for (int i = 0; i < n; i++) { state.add(in.readDouble(), in.readVInt()); } return state; }
@Override public AbstractInternalTDigestPercentiles doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { TDigestState merged = null; for (InternalAggregation aggregation : aggregations) { final AbstractInternalTDigestPercentiles percentiles = (AbstractInternalTDigestPercentiles) aggregation; if (merged == null) { merged = new TDigestState(percentiles.state.compression()); } merged.add(percentiles.state); } return createReduced(getName(), keys, merged, keyed, pipelineAggregators(), getMetaData()); }
@Override public void collect(int doc, long bucket) throws IOException { states = bigArrays.grow(states, bucket + 1); TDigestState state = states.get(bucket); if (state == null) { state = new TDigestState(compression); states.set(bucket, state); } if (values.advanceExact(doc)) { final int valueCount = values.docValueCount(); for (int i = 0; i < valueCount; i++) { state.add(values.nextValue()); } } } };
@Override public void collect(int doc, long bucket) throws IOException { valueSketches = bigArrays.grow(valueSketches, bucket + 1); TDigestState valueSketch = valueSketches.get(bucket); if (valueSketch == null) { valueSketch = new TDigestState(compression); valueSketches.set(bucket, valueSketch); } if (values.advanceExact(doc)) { final int valueCount = values.docValueCount(); for (int i = 0; i < valueCount; i++) { final double value = values.nextValue(); valueSketch.add(value); } } } };
@Override public InternalAggregation buildEmptyAggregation() { return new InternalTDigestPercentiles(name, keys, new TDigestState(compression), keyed, formatter, pipelineAggregators(), metaData()); } }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalTDigestPercentiles(name, keys, new TDigestState(compression), keyed, formatter, pipelineAggregators(), metaData()); } }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalTDigestPercentileRanks(name, keys, new TDigestState(compression), keyed, formatter, pipelineAggregators(), metaData()); }
public static TDigestState read(StreamInput in) throws IOException { double compression = in.readDouble(); TDigestState state = new TDigestState(compression); int n = in.readVInt(); for (int i = 0; i < n; i++) { state.add(in.readDouble(), in.readVInt()); } return state; }
public static TDigestState read(StreamInput in) throws IOException { double compression = in.readDouble(); TDigestState state = new TDigestState(compression); int n = in.readVInt(); for (int i = 0; i < n; i++) { state.add(in.readDouble(), in.readVInt()); } return state; }
public static TDigestState read(StreamInput in) throws IOException { double compression = in.readDouble(); TDigestState state = new TDigestState(compression); int n = in.readVInt(); for (int i = 0; i < n; i++) { state.add(in.readDouble(), in.readVInt()); } return state; }
@Override public AbstractInternalTDigestPercentiles doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { TDigestState merged = null; for (InternalAggregation aggregation : aggregations) { final AbstractInternalTDigestPercentiles percentiles = (AbstractInternalTDigestPercentiles) aggregation; if (merged == null) { merged = new TDigestState(percentiles.state.compression()); } merged.add(percentiles.state); } return createReduced(getName(), keys, merged, keyed, pipelineAggregators(), getMetaData()); }
@Override public AbstractInternalTDigestPercentiles doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { TDigestState merged = null; for (InternalAggregation aggregation : aggregations) { final AbstractInternalTDigestPercentiles percentiles = (AbstractInternalTDigestPercentiles) aggregation; if (merged == null) { merged = new TDigestState(percentiles.state.compression()); } merged.add(percentiles.state); } return createReduced(getName(), keys, merged, keyed, pipelineAggregators(), getMetaData()); }
@Override public AbstractInternalTDigestPercentiles doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { TDigestState merged = null; for (InternalAggregation aggregation : aggregations) { final AbstractInternalTDigestPercentiles percentiles = (AbstractInternalTDigestPercentiles) aggregation; if (merged == null) { merged = new TDigestState(percentiles.state.compression()); } merged.add(percentiles.state); } return createReduced(getName(), keys, merged, keyed, pipelineAggregators(), getMetaData()); }
@Override public AbstractInternalTDigestPercentiles doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { TDigestState merged = null; for (InternalAggregation aggregation : aggregations) { final AbstractInternalTDigestPercentiles percentiles = (AbstractInternalTDigestPercentiles) aggregation; if (merged == null) { merged = new TDigestState(percentiles.state.compression()); } merged.add(percentiles.state); } return createReduced(getName(), keys, merged, keyed, pipelineAggregators(), getMetaData()); }