protected boolean initNextRecordReader() throws IOException {
    if (recordReader != null) {
      recordReader.close();
      recordReader = null;
      if (idx > 0) {
        progress += split.getLength(idx - 1); // done processing so far
      }
    }

    // if all chunks have been processed, nothing more to do.
    if (idx == split.getNumSplits()) {
      return false;
    }

    // get a record reader for the idx-th chunk
    try {
      recordReader = inputFormat.getRecordReader(split.getSplit(idx), jobConf,
          reporter);
    } catch (Exception e) {
      recordReader = HiveIOExceptionHandlerUtil.handleRecordReaderCreationException(e, jobConf);
    }

    // if we're performing a binary search, we need to restart it
    if (isSorted) {
      initIOContextSortedProps((FileSplit) split.getSplit(idx), recordReader, jobConf);
    }
    idx++;
    return true;
  }
Get the record reader for the next chunk in this
BucketizedHiveRecordReader.
ql/src/java/org/apache/hadoop/hive/ql/io/BucketizedHiveRecordReader.java