public class FileBatchRecordReader extends Object implements RecordReader
FileBatch using the specified RecordReader.RecordReader.record(URI, DataInputStream) method of the underlying reader is used to
load files.
List<File> imgFiles = ...;
FileBatch fb = FileBatch.forFiles(imgFiles);
PathLabelGenerator labelMaker = new ParentPathLabelGenerator();
ImageRecordReader rr = new ImageRecordReader(32, 32, 1, labelMaker);
rr.setLabels(Arrays.asList("class0", "class1"));
FileBatchRecordReader fbrr = new FileBatchRecordReader(rr, fb);
APPEND_LABEL, LABELS, NAME_SPACE| Constructor and Description |
|---|
FileBatchRecordReader(RecordReader rr,
FileBatch fileBatch) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
batchesSupported()
This method returns true, if next(int) signature is supported by this RecordReader implementation.
|
void |
close() |
Configuration |
getConf()
Return the configuration used by this object.
|
List<String> |
getLabels()
List of label strings
|
List<RecordListener> |
getListeners()
Get the record listeners for this record reader.
|
boolean |
hasNext()
Whether there are anymore records
|
void |
initialize(Configuration conf,
InputSplit split)
Called once at initialization.
|
void |
initialize(InputSplit split)
Called once at initialization.
|
List<Record> |
loadFromMetaData(List<RecordMetaData> recordMetaDatas)
Load multiple records from the given a list of
RecordMetaData instances |
Record |
loadFromMetaData(RecordMetaData recordMetaData)
Load a single record from the given
RecordMetaData instanceNote: that for data that isn't splittable (i.e., text data that needs to be scanned/split), it is more efficient to load multiple records at once using RecordReader.loadFromMetaData(List) |
List<Writable> |
next()
Get the next record
|
List<List<Writable>> |
next(int num)
This method will be used, if batchesSupported() returns true.
|
Record |
nextRecord()
Similar to
RecordReader.next(), but returns a Record object, that may include metadata such as the source
of the data |
List<Writable> |
record(URI uri,
DataInputStream dataInputStream)
Load the record from the given DataInputStream
Unlike
RecordReader.next() the internal state of the RecordReader is not modified
Implementations of this method should not close the DataInputStream |
void |
reset()
Reset record reader iterator
|
boolean |
resetSupported() |
void |
setConf(Configuration conf)
Set the configuration to be used by this object.
|
void |
setListeners(Collection<RecordListener> listeners)
Set the record listeners for this record reader.
|
void |
setListeners(RecordListener... listeners)
Set the record listeners for this record reader.
|
public FileBatchRecordReader(RecordReader rr, FileBatch fileBatch)
rr - Underlying record reader to read files fromfileBatch - File batch to read files frompublic void initialize(InputSplit split) throws IOException, InterruptedException
RecordReaderinitialize in interface RecordReadersplit - the split that defines the range of records to readIOExceptionInterruptedExceptionpublic void initialize(Configuration conf, InputSplit split) throws IOException, InterruptedException
RecordReaderinitialize in interface RecordReaderconf - a configuration for initializationsplit - the split that defines the range of records to readIOExceptionInterruptedExceptionpublic boolean batchesSupported()
RecordReaderbatchesSupported in interface RecordReaderpublic List<List<Writable>> next(int num)
RecordReadernext in interface RecordReaderpublic List<Writable> next()
RecordReadernext in interface RecordReaderpublic boolean hasNext()
RecordReaderhasNext in interface RecordReaderpublic List<String> getLabels()
RecordReadergetLabels in interface RecordReaderpublic void reset()
RecordReaderreset in interface RecordReaderpublic boolean resetSupported()
resetSupported in interface RecordReaderpublic List<Writable> record(URI uri, DataInputStream dataInputStream) throws IOException
RecordReaderRecordReader.next() the internal state of the RecordReader is not modified
Implementations of this method should not close the DataInputStreamrecord in interface RecordReaderIOException - if error occurs during reading from the input streampublic Record nextRecord()
RecordReaderRecordReader.next(), but returns a Record object, that may include metadata such as the source
of the datanextRecord in interface RecordReaderpublic Record loadFromMetaData(RecordMetaData recordMetaData) throws IOException
RecordReaderRecordMetaData instanceRecordReader.loadFromMetaData(List)loadFromMetaData in interface RecordReaderrecordMetaData - Metadata for the record that we want to load fromIOException - If I/O error occurs during loadingpublic List<Record> loadFromMetaData(List<RecordMetaData> recordMetaDatas) throws IOException
RecordReaderRecordMetaData instancesloadFromMetaData in interface RecordReaderrecordMetaDatas - Metadata for the records that we want to load fromIOException - If I/O error occurs during loadingpublic List<RecordListener> getListeners()
RecordReadergetListeners in interface RecordReaderpublic void setListeners(RecordListener... listeners)
RecordReadersetListeners in interface RecordReaderpublic void setListeners(Collection<RecordListener> listeners)
RecordReadersetListeners in interface RecordReaderpublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableIOExceptionpublic void setConf(Configuration conf)
ConfigurablesetConf in interface Configurablepublic Configuration getConf()
ConfigurablegetConf in interface ConfigurableCopyright © 2019. All rights reserved.