@Override
public List<InputSplit> getSplits(JobContext context) throws IOException {
final Configuration conf = context.getConfiguration();
final FijiURI inputTableURI = getInputTableURI(conf);
final Fiji fiji = Fiji.Factory.open(inputTableURI, conf);
final FijiTable table = fiji.openTable(inputTableURI.getTable());
final HTableInterface htable = HBaseFijiTable.downcast(table).openHTableConnection();
try {
final List<InputSplit> splits = Lists.newArrayList();
for (FijiRegion region : table.getRegions()) {
final byte[] startKey = region.getStartKey();
final String location =
region.getLocations().isEmpty() ? null : region.getLocations().iterator().next();
final TableSplit tableSplit = new TableSplit(
htable.getTableName(), startKey, region.getEndKey(), location);
splits.add(new FijiTableSplit(tableSplit, startKey));
}
return splits;
} finally {
htable.close();
}
}