2017-02-22 75 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和成员函数。