让我们假设rowkey 1的值为f1:c1,f1:c2 rowkey 2的值仅为f1:c1。第2行没有f1:c2。
我如何识别这些行(没有填充列的行)?
答案 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