计算Accumulo批处理扫描程序返回的行数

时间:2018-11-01 09:19:37

标签: counting accumulo

我想知道是否有一种有效的方法可以计算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;

我正在遍历批处理扫描器返回的每一行,并计算遇到的每一行。我想知道的是,是否有更好的方法?

1 个答案:

答案 0 :(得分:0)

通常(What is the best way to get the count/length/size of an iterator?)您将无法更快地执行此操作,因为您的过滤器可以是任何东西,因此您必须在其中进行一些计数。

还有其他方法(Maintain statistics across rows in accumulo)可以跟踪计数,但是它们可能会给您带来新的麻烦。