@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); } }
@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()); }
@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()); }