private boolean nextBatch(VectorizedRowBatch columnarBatch) throws IOException {
    currentRowNumInRowGroup += lastReturnedRowCount;

    VectorizedBatchUtil.resetNonPartitionColumns(columnarBatch);
    if (rowsReturned >= totalRowCount) {
      return false;
    }

    // Add partition cols if necessary (see VectorizedOrcInputFormat for details).
    if (addPartitionCols) {
      if (partitionValues != null) {
        rbCtx.addPartitionColsToBatch(columnarBatch, partitionValues);
      }
      addPartitionCols = false;
    }
    checkEndOfRowGroup();

    int num = (int) Math.min(VectorizedRowBatch.DEFAULT_SIZE, totalCountLoadedSoFar - rowsReturned);
    if (colsToInclude.size() > 0) {
      for (int i = 0; i < columnReaders.length; ++i) {
        if (columnReaders[i] == null) {
          continue;
        }
        columnarBatch.cols[colsToInclude.get(i)].isRepeating = true;
        columnReaders[i].readBatch(num, columnarBatch.cols[colsToInclude.get(i)],
            columnTypesList.get(colsToInclude.get(i)));
      }
    }
    lastReturnedRowCount = num;
    rowsReturned += num;
    columnarBatch.size = num;
    return true;
  }
Advances to the next batch of rows. Returns false if there are no more.
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedParquetRecordReader.java