使用开始和停止行后是否有任何java api限制扫描记录的数量? pagefilter是一个选项吗?
答案 0 :(得分:1)
您是否尝试使用setMaxResultSize()?
PageFilter可能无法给出预期的结果,文档说:
这个过滤器不能保证返回的结果数量 客户端是< =页面大小。这是因为应用了过滤器 分别在不同的区域服务器上然而它确实优化了 通过确保页面大小永远不会扫描单个HRegions 超出了当地。
答案 1 :(得分:0)
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html#setCaching(int)也许可以帮到你。 setCaching()用于定义HBase在一次RPC调用中应返回的结果数。
答案 2 :(得分:0)
使用scan.setLimit(int)方法
https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html#setLimit-int-
设置此扫描的行数限制。如果返回的行数达到此值,我们将终止扫描。 在所有其他条件(例如stopRow,过滤器等)之后,将最终测试此条件。
答案 3 :(得分:0)
如果您只想获得单行
,则此答案适用如果您使用的HBase较旧版本(其中setLimit不可用),则可以使用stopRow而不是为其提供与startRow相同的值,并将尾随字节集添加到documentation中的零以使其具有包容性:
注意:为了使stopRow包含在内,请在末尾添加0字节
这里是一个例子:
byte[] startRow = new byte[] { (byte)0xab, (byte)0xac};
byte[] stopRow = new byte[startRow.length + 1];
Array.copy(startRow, 0, stopRow, 0, startRow.length);
stopRow[stopRow.length - 1] = 0; // inclusive
Scan scan = new Scan().setStartRow(startRow).setStopRow(stopRow);