hbase 新版本 java api 遍历

hbase 新版本之后,java api 改动比较大,很多方法都已经过时,其中在作全表遍历时,方法改动较大

网上多数都是基于旧api的遍历方法。

新api 示例如下

/**
 * 遍历所有数据
 */
public void queryAll() {
	try {
		Table table = conn.getTable(tableName);

		ResultScanner scan = table.getScanner(new Scan());
		
		for (Result rst : scan) {
			String rowKey = Bytes.toString(rst.getRow());
			// family    qualifiers     values
			NavigableMap<byte[], NavigableMap<byte[],byte[]>> familyMap = rst.getNoVersionMap();
			
			for(byte[] fByte : familyMap.keySet()){
				
				NavigableMap<byte[],byte[]> quaMap = familyMap.get(fByte);
				
				String familyName = Bytes.toString(fByte);
				
				for(byte[] quaByte : quaMap.keySet()){
					
					byte[] valueByte = quaMap.get(quaByte);
					
					String quaName = Bytes.toString(quaByte);
					
					
					String value = Bytes.toString(valueByte);
					
					String result = String.format("rowKey : %s | family : %s | qualifiers : %s | value : %s", rowKey, familyName, quaName, value);
					
					System.out.println(result);
				}
			}
		}
		scan.close();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}


发布了67 篇原创文章 · 获赞 19 · 访问量 18万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章