Could anyone please tell me how to do a qualifier filter or ValueFilter from the hbase shell command line?
It is very similar to how you would code in any programming language, for instance :-
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.util.Bytes
scan 'tableName', {COLUMNS=>['CF:qualifier1', 'CF:qualifier2'], LIMIT=>10,
FILTER=>SingleColumnValueFilter.new(Bytes.toBytes('CF'),
Bytes.toBytes('qualifier1'), CompareFilter::CompareOp.valueOf('EQUAL'),
Bytes.toBytes('value'))}
You obviously have to change parameters depending on the fiter you use.
You can instantiate any filter the same way you would do in Java (with JRuby syntax), and supply the filter as:
filter = ...
scan 'mytable', FILTER => filter
However, instantiating the filter in the shell directly can be cumbersome, so an easier way is to supply filter as a string using Filter Language. For example, to include all the columns with value equal to 'myvalue' in a scan you would use:
scan 'mytable', FILTER => "ValueFilter(=, 'binary:myvalue')"
You can check this document as a 'Filter Language' reference.
(edit for closing double quote)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With