我想知道是否有一种有效的方法可以计算Accumulo中批处理扫描程序返回的行数,而不必手动遍历返回的所有行。
我现在所拥有的是这样的
Connector connector = // Created a new connector
BatchScanner bsc = connector.createBatchScanner(tableName, Authorizations.EMPTY, numThreads);
/*
... applying filters
*/
Iterator<Map.Entry<Key, Value>> e = bsc.iterator();
long cnt = 0;
while(e.hasNext()) {
cnt++;
}
return cnt;
我正在遍历批处理扫描器返回的每一行,并计算遇到的每一行。我想知道的是,是否有更好的方法?
答案 0 :(得分:0)
通常(What is the best way to get the count/length/size of an iterator?)您将无法更快地执行此操作,因为您的过滤器可以是任何东西,因此您必须在其中进行一些计数。
还有其他方法(Maintain statistics across rows in accumulo)可以跟踪计数,但是它们可能会给您带来新的麻烦。