public DataByteArray exec()

in src/main/java/org/apache/datasketches/pig/tuple/ArrayOfDoublesSketchToQuantilesSketch.java [61:88]


  public DataByteArray exec(final Tuple input) throws IOException {
    if (input == null || input.size() == 0) {
      return null;
    }

    final DataByteArray dba = (DataByteArray) input.get(0);
    final ArrayOfDoublesSketch sketch = ArrayOfDoublesSketches.wrapSketch(Memory.wrap(dba.get()));

    int column = 1;
    if (input.size() > 1) {
      column = (int) input.get(1);
      if (column < 1 || column > sketch.getNumValues()) {
        throw new IllegalArgumentException("Column number out of range. The given sketch has "
          + sketch.getNumValues() + " columns");
      }
    }

    final DoublesSketchBuilder builder = DoublesSketch.builder();
    if (this.k > 0) {
      builder.setK(this.k);
    }
    final UpdateDoublesSketch qs = builder.build();
    final ArrayOfDoublesSketchIterator it = sketch.iterator();
    while (it.next()) {
      qs.update(it.getValues()[column - 1]);
    }
    return new DataByteArray(qs.compact().toByteArray());
  }