Scan scan = new Scan(); scan.setStartRow(getBytes(startRow)); scan.setStopRow(getBytes(stopRow)); scan.setCaching(1000); scan.setCacheBlocks(false); ResultScanner scanner = table.getScanner(scan); int i = 0; List<byte[]> rowList = new LinkedList<byte[]>(); // 遍历扫描器对象, 并将需要查询出来的数据row key取出 for (Result result : scanner) { String row = toStr(result.getRow()); if (i >= firstPage && i < endPage) { rowList.add(getBytes(row)); } i++; } // 获取取出的row key的GET对象 List<Get> getList = getList(rowList); Result[] results = table.get(getList); List<Map<String, String>> mapList // 遍历结果 for (Result result : results) { Map<byte[], byte[]> fmap = packFamilyMap(result); Map<String, String> rmap = packRowMap(fmap); mapList.add(rmap); } List<Get> getList(List<byte[]> rowList) { List<Get> list = new LinkedList<Get>(); for (byte[] row : rowList) { Get get = new Get(row); get.addColumn(getBytes("family1"), getBytes("column1")); get.addColumn(getBytes("family1"), getBytes("column2")); get.addColumn(getBytes("family2"), getBytes("column1")); list.add(get); } return list; } Map<byte[], byte[]> packFamilyMap(Result result) { Map<byte[], byte[]> dataMap = null; dataMap = new LinkedHashMap<byte[], byte[]>(); dataMap.putAll(result.getFamilyMap(getBytes("family1"))); dataMap.putAll(result.getFamilyMap(getBytes("family2"))); return dataMap; } Map<byte[], byte[]> packFamilyMap(Result result) { Map<byte[], byte[]> dataMap = null; dataMap = new LinkedHashMap<byte[], byte[]>(); dataMap.putAll(result.getFamilyMap(getBytes("family1"))); dataMap.putAll(result.getFamilyMap(getBytes("family2"))); return dataMap; } http://www.21edu8.com/pcnet/programming/29943/
HBase实现分页核心代码
猜你喜欢
转载自houshangxiao.iteye.com/blog/2084989
今日推荐
周排行