Ich bin sehr neu in HBase api und einige seltsame Ergebnisse zu sehen, wenn die folgende tun.HBase Scan api mit mehreren Filterbedingungen
Wir versuchen, basierend auf mehrere Filter zu scannen. Ich möchte alle Filterbedingungen bestehen. Ich verwende den folgenden Code.
FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
Filter pageFilter = new PageFilter(5000);
filterList.addFilter(pageFilter);
SingleColumnValueFilter filterOne = new SingleColumnValueFilter(Bytes.toBytes(COLUMN_FAMILY),
Bytes.toBytes(COLUMN_NAME1), CompareOp.EQUAL, Bytes.toBytes(value1));
filterList.addFilter(filterOne);
SingleColumnValueFilter filterTwo = new SingleColumnValueFilter(Bytes.toBytes(COLUMN_FAMILY),
Bytes.toBytes(COLUMN_NAME2), CompareOp.EQUAL, Bytes.toBytes(value2));
filterList.addFilter(filterOne);
filterList.addFilter(filterTwo);
//Scan
Scan scan = new Scan();
scan.setFilter(filterList);
Result result;
try {
scanner = hTable.getScanner(scan);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while ((result = scanner.next()) != null) {
//print the result.
}
//If I am adding multiple SingleColumnValueFilter and I am not doing a addCoulmn() to the scan I am not getting any result even though there are records.
//If I am adding a column to scan then I am seeing results. Initially the result set is matching my filter condition but if I am running for bigger hbase data set then I am seeing bad results.
//If I am adding multiple addCoulmn() to my scan then I am not seeing any result
Ich versuche, nach dem richtigen Beispiel zu suchen, aber keiner von ihnen scheint zu arbeiten. Jede Hilfe in dieser Richtung wird sehr geschätzt. Danke im Voraus.
Warum fügen Sie filterTwo zweimal? – Comencau
Wir sehen nicht, wo Scanner Variable – Comencau