Je souhaite obtenir les lignes de la famille de colonnes sélectionnées dans HBase après l'application du filtre de valeur de colonne unique.Sortie de formatage dans HBase
Dans ma table 'projectData' J'ai la famille colonne comme
name|story|type|keyword
aritra| kl |ac |happy
nill |jk |bc |sad
bob |pk |dd |happy
. Je veux obtenir la liste de 'nom' quand leur 'mot-clé' est heureux. Voici mon code.
public class ByCategory {
public static void main(String [] args) throws Exception{
Configuration conf = HBaseConfiguration.create();
HTable table = new HTable(conf, "Projectdata");
SingleColumnValueFilter filter_by_happycategory = new SingleColumnValueFilter(
Bytes.toBytes("keyword"),
Bytes.toBytes(""),
CompareOp.EQUAL,
Bytes.toBytes("happy")
);
FilterList filterListk =new FilterList();
filterListk.addFilter(filter_by_happycategory);
Scan scanh = new Scan();
scanh.addFamily(Bytes.toBytes("name"));
scanh.addFamily(Bytes.toBytes("keyword"));
scanh.setFilter(filterListk);
ResultScanner scannerh = table.getScanner(scanh);
String key = new String("~");
String keyFlag = new String("~");
System.out.println("Scanning table... ");
for(Result resulth: scannerh){
//System.out.println("getRow:"+Bytes.toString(resulth.getRow()));
key = "~";
for(KeyValue kv:resulth.raw())
{
if(key.compareTo(keyFlag)==0){
key=Bytes.toString(kv.getRow());
System.out.print("Key: "+key);
}
System.out.print(Bytes.toString(kv.getValue()));
}
System.out.println("");
}
scannerh.close();
System.out.println("complete");
table.close();
}
}
Je suis geting sortie comme celui-ci
Key: 102happybob
Key: 109happyaritra
Mais je veux nom. Je suis en train de faire
Key: 102bob
Key: 109aritra
Est-il possible en HBase? Où est ma faute en réalité?
Votre question est confuse et peu claire. vous dites 'où dans' nom 'colonne j'ai des valeurs comme {aritra, nill, bob, jakob} et dans la colonne' mot-clé '{heureux, triste, émotionnel} etc' et aussi 'scanh.addFamily (Bytes.toBytes (" name ")); '. Ainsi sont ces columnfamily ou colonne? –
sorry.J'ai modifié ma question. Tous ces éléments sont des familles de colonnes. – Yonex
Encore une fois, comment une famille de colonnes peut-elle avoir des valeurs sans un nom de colonne? Est-ce la rowkey ou le nom de la colonne? Supprimé réponse précédente, répondra une fois que la question est claire. –