Class TableRecordReader

java.lang.Object
org.apache.hadoop.mapreduce.RecordReader<K,V>
oracle.kv.hadoop.table.TableRecordReader
All Implemented Interfaces:
Closeable, AutoCloseable

public class TableRecordReader extends RecordReader<K,V>
Concrete implementation of TableRecordReaderBase that reads table rows from an InputSplit using a PrimaryKey.
Since:
3.1
  • Field Details

    • USER_SECURITY_DIR

      protected static final String USER_SECURITY_DIR
    • current

      protected Row current
  • Constructor Details

    • TableRecordReader

      public TableRecordReader()
  • Method Details

    • getCurrentKey

      public PrimaryKey getCurrentKey() throws IOException, InterruptedException
      Get the current key.
      Specified by:
      getCurrentKey in class RecordReader<PrimaryKey,Row>
      Returns:
      the current key or null if there is no current key
      Throws:
      IOException - if an I/O error occurs
      InterruptedException - if the operation is interrupted
    • getCurrentValue

      public Row getCurrentValue() throws IOException, InterruptedException
      Get the current value.
      Specified by:
      getCurrentValue in class RecordReader<PrimaryKey,Row>
      Returns:
      the object that was read
      Throws:
      IOException - if an I/O error occurs
      InterruptedException - if the operation is interrupted
    • initialize

      public void initialize(InputSplit split, TaskAttemptContext context) throws IOException, InterruptedException
      Called once at initialization.
      Specified by:
      initialize in class RecordReader<K,V>
      Parameters:
      split - the split that defines the range of records to read
      context - the information about the task
      Throws:
      IOException - if an I/O error occurs
      InterruptedException - if the operation is interrupted
    • nextKeyValue

      public boolean nextKeyValue() throws IOException
      Reads the next key/value pair as a Row and then processes the contents of the row.
      Specified by:
      nextKeyValue in class RecordReader<K,V>
      Returns:
      true when a key/value pair was successfully read and processed; otherwise, returns false when EOF is encountered.
      Throws:
      IOException - when IOException occurs during processing. When any other type of exception is encountered during processing, throws that exception wrapped in IOException; to be consistent with the Hadoop RecordReader interface implemented by this class. See SR25870 for more details.
    • getProgress

      public float getProgress()
      The current progress of the record reader through its data.
      Specified by:
      getProgress in class RecordReader<K,V>
      Returns:
      a number between 0.0 and 1.0 that is the fraction of the data read
    • close

      public void close() throws IOException
      Close the record reader.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in class RecordReader<K,V>
      Throws:
      IOException
    • getKvTable

      public Table getKvTable()
    • setIndexKey

      public void setIndexKey(IndexKey key)
    • setPrimaryKey

      public void setPrimaryKey(PrimaryKey key)
    • setMultiRowOptions

      public void setMultiRowOptions(FieldRange fieldRange)
    • setStore

      public void setStore(KVStore testStore)
      For testing only; to support the use of a mocked store.
    • setQueryInfo

      public void setQueryInfo(int newQueryBy, String newWhereClause)
    • setIterFailHook

      public void setIterFailHook(oracle.kv.impl.test.TestHook<RecordValue> iterFailHook)
      Used only when testing. See SR25870.