HBase-scan API 通过scan读取表中数据
2024-10-21 07:39:37
直接贴代码啦
/**
*
* @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();
} }
最新文章
- CSS系列:CSS选择器
- The week in .NET - 1/12/2015
- 记一次程序排错与std::getline
- CPU的内部架构和工作原理
- react-native Unrecognized font family ‘Lonicons’;
- php学习笔记:对文件的增删查改等操作
- 踏着前人的脚印学Hadoop——结构、重点
- PHP之路——Redis安装
- codechef Cleaning Up 解决问题的方法
- POJ 2186.Popular Cows (强连通)
- 基于protobuf的RPC实现
- Intent解析
- linux下rename用法--批量重命名
- python 版本管理工具 pyenv 使用备忘
- Java的一些良好习惯及细节------持续更新中...
- Java基础-this和super的区别
- 什么是HTML?HTML5是什么?HTML5有那些优势和特性?
- 2018-2019-2 20165312《网络攻防技术》Exp5 MSF基础应用
- sublime3添加verilog自动补全代码段
- NodeJs之fs