0

我正在尝试扫描 hbase 表并按列值过滤行。

我正在使用的 shell 命令:

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')" }

是在 shell 中使用过滤器的示例。字符串数据以外的类型需要类型前缀。需要指定族和限定符。

如果您只需要查看数据,应用一些过滤器,您可以使用我构建的这个简单工具 Hbase Manager。您可以将此工具用于 0.90.4 和 0.92 版本的 Hbase。

于 2013-01-02T11:48:41.600 回答