У меня такая же структура таблицы, созданной для каждого месяца, которая содержит идентификатор твита в качестве ключа строки. Мне нужно извлечь 600 случайных твитов из каждой таблицы. Интересно, что он возвращает результаты только для некоторых таблиц. Если я выполню сканирование таблицы в оболочке hbase, я смогу увидеть результаты. Мне интересно, что может быть причиной такого поведения.
HTable indexTable = (HTable) connection.getTable(TableName.valueOf(indexTableName));
Scan scan = new Scan();
RandomRowFilter filter1 = new RandomRowFilter(1);
PageFilter filter2 = new PageFilter(getNtweetsPerMonth());
FilterList orFilter = new FilterList();
orFilter.addFilter(filter1);
orFilter.addFilter(filter2);
scan.setFilter(orFilter);
scan.setMaxResultSize(getNtweetsPerMonth());
if (tsStart >= 0 && tsEnd >= 0) {
if (tsEnd < Long.MAX_VALUE) {
scan.setTimeRange(tsStart, tsEnd + 1);
} else {
scan.setTimeRange(tsStart, tsEnd);
}
}
ResultScanner rs = indexTable.getScanner(scan);
Result r = rs.next();
while (r != null) {
String tweetIdString = TruthyHelpers.getTweetIDStrFromBigIntBytes(r.getRow());
BytesWritable tweetIdBytes = new BytesWritable(Bytes.toBytes(tweetIdString));
contentResults.add(tweetIdBytes);
r = rs.next();
}
rs.close();
indexTable.close();
connection.close();
return contentResults;