Class TableRecordReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.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 Detail

      • USER_SECURITY_DIR

        protected static final java.lang.String USER_SECURITY_DIR
      • current

        protected Row current
    • Constructor Detail

      • TableRecordReader

        public TableRecordReader()
    • Method Detail

      • getCurrentKey

        public PrimaryKey getCurrentKey()
                                 throws java.io.IOException,
                                        java.lang.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:
        java.io.IOException - if an I/O error occurs
        java.lang.InterruptedException - if the operation is interrupted
      • getCurrentValue

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

        public void initialize​(InputSplit split,
                               TaskAttemptContext context)
                        throws java.io.IOException,
                               java.lang.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:
        java.io.IOException - if an I/O error occurs
        java.lang.InterruptedException - if the operation is interrupted
      • nextKeyValue

        public boolean nextKeyValue()
                             throws java.io.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:
        java.io.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 java.io.IOException
        Close the record reader.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class RecordReader<K,​V>
        Throws:
        java.io.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,
                                 java.lang.String newWhereClause)
      • setIterFailHook

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