Hbase:如何知道某一行是否有特定列族?

时间:2016-06-14 22:50:39

标签: hadoop hbase

让我们假设rowkey 1的值为f1:c1,f1:c2 rowkey 2的值仅为f1:c1。第2行没有f1:c2。

我如何识别这些行(没有填充列的行)?

1 个答案:

答案 0 :(得分:2)

  • 你想从行中知道然后尝试这样......

     HTable t = new HTable(conf....);
     ResultScanner scanner = t.getScanner(new Scan());    
     for (Result rr = scanner.next(); rr != null; rr = scanner.next()) 
     {
           if (rr.getValue("YourFamily" , "YourQualifier").equals(Bytes.toBytes("d"))
           {
            // do some thing
           } else { return; // if you want to skip     } } }
    
  • 请参阅Result

result.getFamilyMap()是另一种方式。但由于性能不推荐它。请参阅此方法的文档

但是,HTableDescriptor.html已经有家庭方法。

boolean hasFamily(byte[] familyName)
Checks to see if this table contains the given column family