HBase-scan API 通过scan读取表中数据
2020-12-13 03:58
标签:hbase scan 直接贴代码啦
HBase-scan API 通过scan读取表中数据,搜素材,soscw.com HBase-scan API 通过scan读取表中数据 标签:hbase scan 原文地址:http://blog.csdn.net/smile0198/article/details/37069863/**
*
* @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();
}
}
上一篇:Python总结4
下一篇:c++ 字符串转数字