in src/main/java/org/apache/datasketches/pig/tuple/DataToArrayOfDoublesSketchBase.java [98:117]
public Tuple exec(final Tuple inputTuple) throws IOException {
if (this.isFirstCall_) {
// this is to see in the log which way was used by Pig
Logger.getLogger(getClass()).info("exec is used");
this.isFirstCall_ = false;
}
if (inputTuple == null || inputTuple.size() == 0) {
return null;
}
if (inputTuple.size() != 1) {
throw new IllegalArgumentException("Input tuple must have 1 bag");
}
final ArrayOfDoublesUpdatableSketch sketch =
new ArrayOfDoublesUpdatableSketchBuilder().setNominalEntries(this.sketchSize_)
.setSamplingProbability(this.samplingProbability_).setNumberOfValues(this.numValues_).build();
final DataBag bag = (DataBag) inputTuple.get(0);
updateSketch(bag, sketch, this.numValues_);
return Util.tupleFactory.newTuple(new DataByteArray(sketch.compact().toByteArray()));
}