/**
* It a single record from the map file for the given index
*
* @param index Index, between 0 and numRecords()-1
* @return Value from the MapFile
* @throws IOException If an error occurs during reading
*/
public V getRecord(long index) throws IOException {
//First: determine which reader to read from...
int readerIdx = -1;
for (int i = 0; i < recordIndexesEachReader.size(); i++) {
Pair<Long, Long> p = recordIndexesEachReader.get(i);
if (index >= p.getFirst() && index <= p.getSecond()) {
readerIdx = i;
break;
}
}
if (readerIdx == -1) {
throw new IllegalStateException("Index not found in any reader: " + index);
}
WritableComparable key = indexToKey.getKeyForIndex(index);
Writable value = ReflectionUtils.newInstance(recordClass, null);
V v = (V) readers[readerIdx].get(key, value);
return v;
}
MapFileReader.java 文件源码
java
阅读 34
收藏 0
点赞 0
评论 0
项目:DataVec
作者:
评论列表
文章目录