Supposons que la touche de ligne 1 possède des valeurs pour f1: c1, f1: c2 Lorsque la touche de ligne 2 a des valeurs pour f1: c1 uniquement. la rangée 2 n'a pas f1: c2. Comment reconnaître ces lignes (celles sans colonne remplie)?Hbase: Comment savoir si une rangée avait une famille de colonnes particulière ou non?
1
A
Répondre
2
Vous voulez savoir de la ligne puis essayer comme ça ...
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 } } }
Voir Result
result.getFamilyMap()
est une autre façon. Mais ce n'est pas recommandé en raison de la performance .. voir le doc de cette méthode
Cependant, HTableDescriptor.html a déjà la méthode hasfamily.
boolean hasFamily(byte[] familyName)
Checks to see if this table contains the given column family
était ma réponse utile? –