You will have to set the stop row also (As Phil Yang suggested) . Otherwise the scan might return row from next region (if this region is empty)
-Anoop- On Wed, Aug 3, 2016 at 12:23 PM, jinhong lu <[email protected]> wrote: > Thanks a lot. I make a mistake in my code, it should be: > sc.setStartRow(startRowkey), > not: > sc.setRowPrefixFilter(startRowkey); > After fix that, it works. > > > Thanks, > lujinhong > >> 在 2016年8月2日,11:12,Phil Yang <[email protected]> 写道: >> >> If you pre-split this table with some split points when you create the >> table, the start key may not be the prefix of the first row key. So you >> should use setStartRow(regionInfo.getStartKey()) >> and setStopRow(nextRegionInfo.getStartKey()) and setBatch(1), if the result >> is still null, this region is indeed empty. >> >> Thanks, >> Phil >> >> >> 2016-08-02 10:21 GMT+08:00 jinhong lu <[email protected]>: >> >>> Thanks. Here is my code, but in most case, r is null? why this happened? >>> >>> byte[] startRowkey = >>> regionInfo.getStartKey(); >>> Scan sc = new Scan(); >>> sc.setBatch(1); >>> sc.setRowPrefixFilter(startRowkey); >>> try { >>> scanner = table.getScanner(sc); >>> r = scanner.next(); >>> scanner.close(); >>> } >>> Thanks, >>> lujinhong >>> >>>> 在 2016年8月1日,18:49,Ted Yu <[email protected] <mailto: >>> [email protected]>> 写道: >>>> >>>> . >>> >>> >
