2017-02-22 77 views
1

我有一個簡單的問題。我應該使用CellUtil類是這樣的:HBASE CellUtil與KeyValue

for (Cell cell : result.rawCells()) { 
      byte[] family = CellUtil.cloneFamily(cell); 
      byte[] column = CellUtil.cloneQualifier(cell); 
      byte[] value = CellUtil.cloneValue(cell); 
      System.out.println("\t" + Bytes.toString(family) + ":" + Bytes.toString(column) + " = " + Bytes.toString(value)); 
     } 

或鍵值類用於訪問結果細胞

for(KeyValue kv : result.list()){ 
      String family = new String(kv.getFamily()); 
      System.out.println(family); 
      String qualifier = new String(kv.getQualifier()); 
      System.out.println(qualifier); 
      System.out.println(new String(kv.getValue())); 

     } 

待辦事項鍵值已經過時?

非常感謝您的回答

回答

0

鍵值不會被棄用,但它的方法,如getFamily,getQualifier,等的getValue是。 在API文檔中,您可以看到推薦使用CellUtil類方法(用於客戶端)和服務器端的Cell接口方法。 這是因爲根據HBase文檔, KeyValue是基本的HBase類型,建議HBase應用程序和用戶應該使用Cell接口,並避免直接使用未在Cell中定義的KeyValue和成員函數。