首页 > 代码库 > 使用HBASE用到的几个filter SingleColumnValueFilter,RowFilter,ValueFilter
使用HBASE用到的几个filter SingleColumnValueFilter,RowFilter,ValueFilter
SingleColumnValueFilter
过滤某列值大于多少小于多少:
List<Filter> filters = new ArrayList<Filter>(); filters.add( new SingleColumnValueFilter(Bytes.toBytes("pinfo"), //列族 Bytes.toBytes("t"), //列名 CompareOp.GREATER,Bytes.toBytes("1359901"]) ) //值 filters.add( new SingleColumnValueFilter(Bytes.toBytes("pinfo"), Bytes.toBytes("t"), CompareOp.LESS,Bytes.toBytes("1389901"]) ) FilterList filterList1 = new FilterList(Operator.MUST_PASS_ALL,filters); sn.setFilter(filterList1);
RowFilter
Rowkey中包括某些字符串
字符串存在list a内
for (int a=0;a<size;a++) { // Filter filter2 = new RowFilter(CompareOp.EQUAL, // new RegexStringComparator(".*"+maclist.get(a)+"$")); Filter filter2 = new RowFilter(CompareOp.EQUAL, new SubstringComparator(maclist.get(a))); filters.add(filter2); } FilterList filterList1 = new FilterList(Operator.MUST_PASS_ONE,filters); sn.setFilter(filterList1);
ValueFilter:
不需要指定某个列,含指某个值的列的数据都取出来,混在一起
HTable table = new HTable(config, tableName); Scan scan = new Scan(); System.out.println("只列出值包含data1的列"); Filter filter1 = new ValueFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("data1")); scan.setFilter(filter1);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。