@Override
  public boolean next(Void key, VectorizedRowBatch value) throws IOException {
    try {
      if (innerReader.nextKeyValue()) {
        HiveBatchContext currentValue = (HiveBatchContext) innerReader.getCurrentValue();
        VectorizedRowBatch newBatch = currentValue.getBatch();
        value.cols = newBatch.cols;
        value.endOfFile = newBatch.endOfFile;
        value.numCols = newBatch.numCols;
        value.projectedColumns = newBatch.projectedColumns;
        value.projectionSize = newBatch.projectionSize;
        value.selectedInUse = newBatch.selectedInUse;
        value.selected = newBatch.selected;
        value.size = newBatch.size;
        return true;
      } else {
        return false;
      }
    } catch (InterruptedException ie) {
      Thread.currentThread().interrupt();
      throw new RuntimeException(ie);
    }
  }
Basically an MR1 API implementing wrapper for transferring VectorizedRowBatch's produced by
IcebergInputformat$IcebergRecordReader which relies on the MR2 API format.
iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vector/HiveIcebergVectorizedRecordReader.java