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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章