@Override public Object compute(Map<String, Object> combinedAggregators) { return zScoreTwoSamples( ((Number) successCount1.compute(combinedAggregators)).doubleValue(), ((Number) sample1Size.compute(combinedAggregators)).doubleValue(), ((Number) successCount2.compute(combinedAggregators)).doubleValue(), ((Number) sample2Size.compute(combinedAggregators)).doubleValue() ); }
@Override public Set<String> getDependentFields() { return field.getDependentFields(); }
/** * returns the list of dependent postAggregators that should be calculated in order to calculate given postAgg * * @param postAggregatorList List of postAggregator, there is a restriction that the list should be in an order such * that all the dependencies of any given aggregator should occur before that aggregator. * See AggregatorUtilTest.testOutOfOrderPruneDependentPostAgg for example. * @param postAggName name of the postAgg on which dependency is to be calculated * * @return the list of dependent postAggregators */ public static List<PostAggregator> pruneDependentPostAgg(List<PostAggregator> postAggregatorList, String postAggName) { ArrayList<PostAggregator> rv = new ArrayList<>(); Set<String> deps = new HashSet<>(); deps.add(postAggName); // Iterate backwards to find the last calculated aggregate and add dependent aggregator as we find dependencies // in reverse order for (PostAggregator agg : Lists.reverse(postAggregatorList)) { if (deps.contains(agg.getName())) { rv.add(agg); // add to the beginning of List deps.remove(agg.getName()); deps.addAll(agg.getDependentFields()); } } Collections.reverse(rv); return rv; }
@Override public Comparator getComparator(List<AggregatorFactory> aggregatorSpecs, List<PostAggregator> postAggregatorSpecs) { Comparator comp = null; for (AggregatorFactory factory : aggregatorSpecs) { if (metric.equals(factory.getName())) { comp = factory.getComparator(); break; } } for (PostAggregator pf : postAggregatorSpecs) { if (metric.equals(pf.getName())) { comp = pf.getComparator(); break; } } return comp; }
List<PostAggregator> decorated = Lists.newArrayListWithExpectedSize(postAggs.size()); for (final PostAggregator postAgg : postAggs) { final Set<String> dependencies = postAgg.getDependentFields(); final Set<String> missing = Sets.difference(dependencies, combinedOutputNames); "Missing fields [%s] for postAggregator [%s]", missing, postAgg.getName() ); Preconditions.checkArgument( combinedOutputNames.add(postAgg.getName()), "[%s] already defined", postAgg.getName() ); decorated.add(postAgg.decorate(aggsFactoryMap));
@Override public boolean apply(PostAggregator input) { return input.getName().equals(metric); } }
public static List<PostAggregator> decoratePostAggregators( List<PostAggregator> postAggs, Map<String, AggregatorFactory> aggFactories ) { List<PostAggregator> decorated = Lists.newArrayListWithExpectedSize(postAggs.size()); for (PostAggregator aggregator : postAggs) { decorated.add(aggregator.decorate(aggFactories)); } return decorated; }
public static int getPostAggIndexForOrderBy(OrderByColumnSpec orderSpec, List<PostAggregator> postAggs) { int i = 0; for (PostAggregator postAgg : postAggs) { if (orderSpec.getDimension().equals((postAgg.getName()))) { return i; } i++; } return -1; }
List<PostAggregator> decorated = Lists.newArrayListWithExpectedSize(postAggs.size()); for (final PostAggregator postAgg : postAggs) { final Set<String> dependencies = postAgg.getDependentFields(); final Set<String> missing = Sets.difference(dependencies, combinedOutputNames); "Missing fields [%s] for postAggregator [%s]", missing, postAgg.getName() ); Preconditions.checkArgument( combinedOutputNames.add(postAgg.getName()), "[%s] already defined", postAgg.getName() ); decorated.add(postAgg.decorate(aggsFactoryMap));
postAggregatorsMap.put(postAgg.getName(), postAgg); nextOrdering = metricOrdering(columnName, postAggregatorsMap.get(columnName).getComparator()); } else if (aggregatorsMap.containsKey(columnName)) { nextOrdering = metricOrdering(columnName, aggregatorsMap.get(columnName).getComparator());
public static List<PostAggregator> decoratePostAggregators( List<PostAggregator> postAggs, Map<String, AggregatorFactory> aggFactories ) { List<PostAggregator> decorated = Lists.newArrayListWithExpectedSize(postAggs.size()); for (PostAggregator aggregator : postAggs) { decorated.add(aggregator.decorate(aggFactories)); } return decorated; }
@Override public Set<String> getDependentFields() { return field.getDependentFields(); }
@Override public Object compute(final Map<String, Object> combinedAggregators) { final DoublesSketch sketch = (DoublesSketch) field.compute(combinedAggregators); return sketch.getQuantile(fraction); }
final Set<String> dependentFields = postAggregator.getDependentFields(); for (AggregatorFactory aggregatorFactory : aggregatorFactories) { if (!dependentFields.contains(aggregatorFactory.getName())) { ? postAggregator.getName() : Iterables.getOnlyElement(aggregatorFactories).getName();
public String getOutputName() { return postAggregator != null ? postAggregator.getName() : Iterables.getOnlyElement(aggregatorFactories).getName(); }
@Override public Comparator getComparator(List<AggregatorFactory> aggregatorSpecs, List<PostAggregator> postAggregatorSpecs) { Comparator comp = null; for (AggregatorFactory factory : aggregatorSpecs) { if (metric.equals(factory.getName())) { comp = factory.getComparator(); break; } } for (PostAggregator pf : postAggregatorSpecs) { if (metric.equals(pf.getName())) { comp = pf.getComparator(); break; } } return comp; }
@Override public Set<String> getDependentFields() { return field.getDependentFields(); }