我正在尝试扫描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')
答案 0 :(得分:6)
问题在于您申请扫描的查询。
{ FILTER => "SingleColumnValueFilter('f1', 'col_a', >, 'binary:1')" }
是在shell中处理过滤器的示例。除字符串数据之外的类型需要类型前缀。需要指定族和限定符。
如果您只需要查看数据,应用一些过滤器就可以使用我构建的这个简单工具Hbase Manager。您可以将此工具用于0.95.4和0.92版本的Hbase。