2012-03-17 15 views
7

Sto scrivendo un'applicazione che mostra i dati in una tabella specifica in HBase di JSP. Voglio ottenere tutte le colonne in una specifica famiglia di colonne per una riga.Ottieni colonne in una famiglia di colonne specifica per una riga HBase

c'è un modo per fare questo?

+0

raggiungo ad una risposta, se si dispone di un'altra soluzione, si prega di avvertire me. per (Risultato rr = scanner.next(); rr = null;! Rr = scanner.next()) { \t \t \t \t NavigableMap familyMap = rr.getFamilyMap (Bytes.toBytes ("Info")); \t \t \t \t byte [] y = (byte []) familyMap.firstEntry(). GetKey(); \t \t \t \t System.out.println (Bytes.toString (y)); \t \t } – Mahdi

risposta

9
public String[] getColumnsInColumnFamily(Result r, String ColumnFamily) 
{ 

     NavigableMap<byte[], byte[]> familyMap = r.getFamilyMap(Bytes.toBytes(ColumnFamily)); 
     String[] Quantifers = new String[familyMap.size()]; 

     int counter = 0; 
     for(byte[] bQunitifer : familyMap.keySet()) 
     { 
      Quantifers[counter++] = Bytes.toString(bQunitifer); 

     } 

     return Quantifers; 
} 

Il risultato r è una riga desiderabile.

8

Se siete solo interessati a una sola famiglia è possibile impostare lo scanner per andare a prendere solo quella famiglia

Scan scan = new Scan(Bytes.toBytes(startKey),Bytes.toBytes(endKey); 
    scan.addFamily(Bytes.toBytes(familyName)); 
Problemi correlati