0

hbase テーブルをスキャンし、列の値で行をフィルター処理しようとしています。

私が使用しているシェルコマンド:

scan 'audit', {COLUMNS => 'cf1:n_id', LIMIT => 1, FILTER => "ValueFilter(=, '723270266')"}

しかし、次のエラーが発生します:

Caused by: java.lang.IllegalArgumentException: Incorrect comparator
at org.apache.hadoop.hbase.filter.ParseFilter.parseComparator(ParseFilter.java:815)
at org.apache.hadoop.hbase.filter.ParseFilter.createComparator(ParseFilter.java:789)
at org.apache.hadoop.hbase.filter.CompareFilter.extractArguments(CompareFilter.java:134)
at org.apache.hadoop.hbase.filter.ValueFilter.createFilterFromArguments(ValueFilter.java:68)
... 212 more

ERROR: java.lang.IllegalArgumentException: Incorrect filter string ValueFilter(=, '723270266')
4

1 に答える 1

7

問題は、スキャンに適用するクエリにあります。

{ FILTER => "SingleColumnValueFilter('f1', 'col_a', >, 'binary:1')" }

シェルでフィルターを操作する例です。文字列データ以外の型には、型プレフィックスが必要です。ファミリと修飾子を指定する必要があります。

データを表示する必要があるだけの場合は、いくつかのフィルターを適用して、この単純なツールを使用して Hbase Managerを構築できます。このツールは、Hbase の 0.90.4 および 0.92 バージョンで使用できます。

于 2013-01-02T11:48:41.600 に答える