2

私の Hbase テーブルの ROWID は、最初の部分文字列が ABC などの固定文字列で残りが可変になるように構築されています。たとえば、私のROWIDは次のようになります。

ABC_12345
ABC_89778
ABC_64994
...
..

「ABC」を指定するとすべての行が取得されるように、行フィルターの実装を使用してテーブルを SCAN する HBASE クエリを作成するにはどうすればよいですか。

どんな助けでも大歓迎です。

ありがと

4

2 に答える 2

4

フィルターを使用Scanして、両方を使用できます。RegexStringComparatorこのようなもの :

String regEx = "^ABC";
Filter regExFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, 
                        new RegexStringComparator(regEx));
Scan scan = new Scan();
scan.setFilter(regExFilter);
于 2012-08-14T14:04:38.960 に答える
0

SubstringComparator も試すことができます。ドキュメントから:このコンパレータは、特定の列の値に基づいてフィルタリングするために、SingleColumnValueFilterで使用するためのものです。特定の部分文字列が列のセル値に表示されるかどうかをテストするために使用します。比較では大文字と小文字が区別されません。このコンパレータでは、EQUAL または NOT_EQUAL テストのみが有効です。

例えば: SingleColumnValueFilter scvf = new SingleColumnValueFilter("col", CompareOp.EQUAL, new SubstringComparator("substr"));

https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/SubstringComparator.html

于 2014-07-01T09:11:24.950 に答える