您好,欢迎访问一九零五行业门户网

hbase RowFilter

rowfilter用于过滤row key operator description less 小于 less_or_equal 小于等于 equal 等于 not_equal 不等于 greater_or_equal 大于等于 greater 大于 no_op 排除所有 comparator description binarycomparator 使用bytes.compareto()比较 binaryprefix
rowfilter用于过滤row key
operatordescription
less 小于
less_or_equal 小于等于
equal 等于
not_equal 不等于
greater_or_equal 大于等于
greater 大于
no_op 排除所有
comparatordescription
binarycomparator 使用bytes.compareto()比较
binaryprefixcomparator 和binarycomparator差不多,从前面开始比较
nullcomparator does?not compare against an actual value but whether a given one is?null, or not?null.
bitcomparator performs?a bitwise comparison, providing a?bitwiseop?class with?and,?or, and?xor?operators.
regexstringcomparator 正则表达式
substringcomparator 把数据当成字符串,用contains()来判断
import java.io.ioexception;import org.apache.hadoop.conf.configuration;import org.apache.hadoop.hbase.hbaseconfiguration;import org.apache.hadoop.hbase.hcolumndescriptor;import org.apache.hadoop.hbase.htabledescriptor;import org.apache.hadoop.hbase.client.hbaseadmin;import org.apache.hadoop.hbase.client.htable;import org.apache.hadoop.hbase.client.put;import org.apache.hadoop.hbase.client.result;import org.apache.hadoop.hbase.client.resultscanner;import org.apache.hadoop.hbase.client.scan;import org.apache.hadoop.hbase.filter.binarycomparator;import org.apache.hadoop.hbase.filter.binaryprefixcomparator;import org.apache.hadoop.hbase.filter.comparefilter;import org.apache.hadoop.hbase.filter.filter;import org.apache.hadoop.hbase.filter.regexstringcomparator;import org.apache.hadoop.hbase.filter.rowfilter;import org.apache.hadoop.hbase.filter.substringcomparator;public class testhbaserowfilter { string tablename = test_row_filter; configuration config = hbaseconfiguration.create(); /** * 部分代码来自hbase权威指南 * @throws ioexception */ public void testrowfilter() throws ioexception { htable table = new htable(config, tablename); scan scan = new scan(); system.out.println(小于等于row010的行); filter filter1 = new rowfilter(comparefilter.compareop.less_or_equal, new binarycomparator(row010.getbytes())); scan.setfilter(filter1); resultscanner scanner1 = table.getscanner(scan); for (result res : scanner1) { system.out.println(res); } scanner1.close(); system.out.println(正则获取结尾为5的行); filter filter2 = new rowfilter(comparefilter.compareop.equal, new regexstringcomparator(.*5$)); scan.setfilter(filter2); resultscanner scanner2 = table.getscanner(scan); for (result res : scanner2) { system.out.println(res); } scanner2.close(); system.out.println(包行有5的行); filter filter3 = new rowfilter(comparefilter.compareop.equal, new substringcomparator(5)); scan.setfilter(filter3); resultscanner scanner3 = table.getscanner(scan); for (result res : scanner3) { system.out.println(res); } scanner3.close(); system.out.println(开头是row01的); filter filter4 = new rowfilter(comparefilter.compareop.equal, new binaryprefixcomparator(row01.getbytes())); scan.setfilter(filter4); resultscanner scanner4 = table.getscanner(scan); for (result res : scanner4) { system.out.println(res); } scanner3.close(); } /** * 初始化数据 */ public void init() { // 创建表和初始化数据 try { hbaseadmin admin = new hbaseadmin(config); if (!admin.tableexists(tablename)) { htabledescriptor htd = new htabledescriptor(tablename); hcolumndescriptor hcd1 = new hcolumndescriptor(data); htd.addfamily(hcd1); hcolumndescriptor hcd2 = new hcolumndescriptor(url); htd.addfamily(hcd2); admin.createtable(htd); } htable table = new htable(config, tablename); table.setautoflush(false); int count = 50; for (int i = 1; i 输出结果小于等于row010的行keyvalues={row001/data:col1/1364133382268/put/vlen=7, row001/url:col1/1364133382268/put/vlen=6}keyvalues={row002/data:col2/1364133382268/put/vlen=7, row002/url:col2/1364133382268/put/vlen=6}keyvalues={row003/data:col3/1364133382268/put/vlen=7, row003/url:col3/1364133382268/put/vlen=6}keyvalues={row004/data:col4/1364133382268/put/vlen=7, row004/url:col4/1364133382268/put/vlen=6}keyvalues={row005/data:col5/1364133382268/put/vlen=7, row005/url:col5/1364133382268/put/vlen=6}keyvalues={row006/data:col6/1364133382268/put/vlen=7, row006/url:col6/1364133382268/put/vlen=6}keyvalues={row007/data:col7/1364133382268/put/vlen=7, row007/url:col7/1364133382268/put/vlen=6}keyvalues={row008/data:col8/1364133382268/put/vlen=7, row008/url:col8/1364133382268/put/vlen=6}keyvalues={row009/data:col9/1364133382268/put/vlen=7, row009/url:col9/1364133382268/put/vlen=6}keyvalues={row010/data:col0/1364133382268/put/vlen=7, row010/url:col0/1364133382268/put/vlen=6}正则获取结尾为5的行keyvalues={row005/data:col5/1364133382268/put/vlen=7, row005/url:col5/1364133382268/put/vlen=6}keyvalues={row015/data:col5/1364133382268/put/vlen=7, row015/url:col5/1364133382268/put/vlen=6}keyvalues={row025/data:col5/1364133382268/put/vlen=7, row025/url:col5/1364133382268/put/vlen=6}keyvalues={row035/data:col5/1364133382268/put/vlen=7, row035/url:col5/1364133382268/put/vlen=6}keyvalues={row045/data:col5/1364133382268/put/vlen=7, row045/url:col5/1364133382268/put/vlen=6}包行有5的行keyvalues={row005/data:col5/1364133382268/put/vlen=7, row005/url:col5/1364133382268/put/vlen=6}keyvalues={row015/data:col5/1364133382268/put/vlen=7, row015/url:col5/1364133382268/put/vlen=6}keyvalues={row025/data:col5/1364133382268/put/vlen=7, row025/url:col5/1364133382268/put/vlen=6}keyvalues={row035/data:col5/1364133382268/put/vlen=7, row035/url:col5/1364133382268/put/vlen=6}keyvalues={row045/data:col5/1364133382268/put/vlen=7, row045/url:col5/1364133382268/put/vlen=6}keyvalues={row050/data:col0/1364133382268/put/vlen=7, row050/url:col0/1364133382268/put/vlen=6}开头是row01的keyvalues={row010/data:col0/1364133382268/put/vlen=7, row010/url:col0/1364133382268/put/vlen=6}keyvalues={row011/data:col1/1364133382268/put/vlen=7, row011/url:col1/1364133382268/put/vlen=6}keyvalues={row012/data:col2/1364133382268/put/vlen=7, row012/url:col2/1364133382268/put/vlen=6}keyvalues={row013/data:col3/1364133382268/put/vlen=7, row013/url:col3/1364133382268/put/vlen=6}keyvalues={row014/data:col4/1364133382268/put/vlen=7, row014/url:col4/1364133382268/put/vlen=6}keyvalues={row015/data:col5/1364133382268/put/vlen=7, row015/url:col5/1364133382268/put/vlen=6}keyvalues={row016/data:col6/1364133382268/put/vlen=7, row016/url:col6/1364133382268/put/vlen=6}keyvalues={row017/data:col7/1364133382268/put/vlen=7, row017/url:col7/1364133382268/put/vlen=6}keyvalues={row018/data:col8/1364133382268/put/vlen=7, row018/url:col8/1364133382268/put/vlen=6}keyvalues={row019/data:col9/1364133382268/put/vlen=7, row019/url:col9/1364133382268/put/vlen=6}
参考hbase权威指南
原文地址:hbase rowfilter, 感谢原作者分享。
其它类似信息

推荐信息