2017-03-25 3 views
1

J'utilise Bytes.toBytes() pour définir la plage pour Scan, et si je saisis le stumber = "AAAA00000", les résultats sont "AAAA000000" ~ "AAAA000008", pourquoi "AAAA000009" n'est pas inclus?Pourquoi Bytes.toBytes() dans HBase ne peut pas retourner la dernière ligne que je recherche dans mon cas?

for (String stumber : stumbersArr) { 
    byte[] startRow = Bytes.toBytes(stumber + "0"); 
    byte[] endRow = Bytes.toBytes(stumber + "9"); 

    Scan scan = new Scan(startRow, endRow); 

    Filter filter1 = new RowFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator(stumber)); 

    scan.setFilter(filter1); 
    scan.setMaxVersions(versions); 

    ResultScanner scanner1 = table.getScanner(scan); 
    Cell[] cells; 
    for (Result res : scanner1) { 
     cells = res.rawCells(); 
     list.addAll(getHBaseTableDataListFromCells(cells)); 
    } 
} 

Répondre