为什么 HBase 中的 Bytes.toBytes() 不能 return 我搜索的最后一行?
Why Bytes.toBytes() in HBase cannot return last row I search in my case?
我用Bytes.toBytes()设置Scan的范围,如果输入stumber="AAAA00000",结果是"AAAA000000"~"AAAA000008",为什么"AAAA000009"不包括在内?
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));
}
}
因为结束边界是独占的,见documentation about scan。
我用Bytes.toBytes()设置Scan的范围,如果输入stumber="AAAA00000",结果是"AAAA000000"~"AAAA000008",为什么"AAAA000009"不包括在内?
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));
}
}
因为结束边界是独占的,见documentation about scan。