Maison >base de données >tutoriel mysql >HBase-scanAPI通过scan读取表中数据
直接贴代码啦 /** * * @param zkIp * @param zkPort * @param tablename * @param startRow 传null扫全表 * @param stopRow 已~结尾 * @throws Exception */public static void scanTable(String zkIp,String zkPort,String tablename,String startRow,Strin
直接贴代码啦
/** * * @param zkIp * @param zkPort * @param tablename * @param startRow 传null扫全表 * @param stopRow 已~结尾 * @throws Exception */ public static void scanTable(String zkIp,String zkPort,String tablename,String startRow,String stopRow) throws Exception { HTablePool pool; Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum",zkIp);// config.set("hbase.zookeeper.property.clientPort", zkPort); pool = new HTablePool(config, 2); HTableInterface hbTable = null; try { hbTable = pool.getTable(tablename); // 表名 ResultScanner rs = null; Scan scan = new Scan(); // scan.addColumn(Bytes.toBytes("cf1"),Bytes.toBytes("qual1"));扫某一列 if (startRow != null) { // 设置扫描的范围 scan.setStartRow(Bytes.toBytes(startRow)); } if (stopRow != null) { scan.setStopRow(Bytes.toBytes(stopRow)); } rs = hbTable.getScanner(scan); hbTable.close(); for (Result r : rs) {// 按行去遍历 for (KeyValue kv : r.raw()) {// 遍历每一行的各列 StringBuffer sb = new StringBuffer() .append(Bytes.toString(kv.getRow())).append("\t") .append(Bytes.toString(kv.getFamily())) .append("\t") .append(Bytes.toString(kv.getQualifier())) .append("\t").append(Bytes.toString(kv.getValue())); System.out.println(sb.toString()); // kv.getRow() key // kv.getFamily() cf1 // kv.getQualifier() 列名 // kv.getValue() value } } } catch (Exception e) { System.out.println(e.getMessage()); }finally{ pool.close(); } }