Package oracle.kv.hadoop.table
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 Summary
Fields Modifier and Type Field Description protected Row
current
protected static String
USER_SECURITY_DIR
-
Constructor Summary
Constructors Constructor Description TableRecordReader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close the record reader.PrimaryKey
getCurrentKey()
Get the current key.Row
getCurrentValue()
Get the current value.Table
getKvTable()
float
getProgress()
The current progress of the record reader through its data.void
initialize(InputSplit split, TaskAttemptContext context)
Called once at initialization.boolean
nextKeyValue()
Reads the next key/value pair as aRow
and then processes the contents of the row.void
setIndexKey(IndexKey key)
void
setIterFailHook(oracle.kv.impl.test.TestHook<RecordValue> iterFailHook)
Used only when testing.void
setMultiRowOptions(FieldRange fieldRange)
void
setPrimaryKey(PrimaryKey key)
void
setQueryInfo(int newQueryBy, String newWhereClause)
void
setStore(KVStore testStore)
For testing only; to support the use of a mocked store.
-
-
-
Method Detail
-
getCurrentKey
public PrimaryKey getCurrentKey() throws IOException, InterruptedException
Get the current key.- Specified by:
getCurrentKey
in classRecordReader<PrimaryKey,Row>
- Returns:
- the current key or null if there is no current key
- Throws:
IOException
- if an I/O error occursInterruptedException
- if the operation is interrupted
-
getCurrentValue
public Row getCurrentValue() throws IOException, InterruptedException
Get the current value.- Specified by:
getCurrentValue
in classRecordReader<PrimaryKey,Row>
- Returns:
- the object that was read
- Throws:
IOException
- if an I/O error occursInterruptedException
- if the operation is interrupted
-
initialize
public void initialize(InputSplit split, TaskAttemptContext context) throws IOException, InterruptedException
Called once at initialization.- Specified by:
initialize
in classRecordReader<K,V>
- Parameters:
split
- the split that defines the range of records to readcontext
- the information about the task- Throws:
IOException
- if an I/O error occursInterruptedException
- if the operation is interrupted
-
nextKeyValue
public boolean nextKeyValue() throws IOException
Reads the next key/value pair as aRow
and then processes the contents of the row.- Specified by:
nextKeyValue
in classRecordReader<K,V>
- Returns:
true
when a key/value pair was successfully read and processed; otherwise, returnsfalse
when EOF is encountered.- Throws:
IOException
- whenIOException
occurs during processing. When any other type of exception is encountered during processing, throws that exception wrapped inIOException
; to be consistent with the HadoopRecordReader
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 classRecordReader<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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classRecordReader<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.
-
-