Skip to content

Instantly share code, notes, and snippets.

@trentonstrong
Created August 24, 2016 21:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trentonstrong/c05b1cfec4e49ee51d664b2f66c69d12 to your computer and use it in GitHub Desktop.
Save trentonstrong/c05b1cfec4e49ee51d664b2f66c69d12 to your computer and use it in GitHub Desktop.
TDigest Combiner
static class TDigestFn extends Combine.CombineFn<Double, TDigest, TDigest> {
private static final int COMPRESSION_RATIO = 100;
@Override
public TDigest createAccumulator() {
return TDigest.createDigest(COMPRESSION_RATIO);
}
@Override
public TDigest addInput(TDigest tDigest, Double value) {
tDigest.add(value);
return tDigest;
}
@Override
public TDigest mergeAccumulators(Iterable<TDigest> iterable) {
final TDigest mergedDigest = TDigest.createDigest(COMPRESSION_RATIO);
for (TDigest digest : iterable) {
mergedDigest.add(digest);
}
return mergedDigest;
}
@Override
public TDigest extractOutput(TDigest tDigest) {
return tDigest;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment