Created
August 24, 2016 21:44
-
-
Save trentonstrong/c05b1cfec4e49ee51d664b2f66c69d12 to your computer and use it in GitHub Desktop.
TDigest Combiner
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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