在Hbase查询中有时需要用到多个Filter关联的查询。
代码如下:
ArrayList<Filter> listForFilters = new ArrayList<Filter>(); // 当前Filter
Filter filter = null;
for (String taskIDTmp : taskIDArray)
{
if ((null != taskIDTmp) && (!"".equals(taskIDTmp)))
{
filter = new PrefixFilter(Bytes.toBytes(taskIDTmp + "_"));// 当前taskID
listForFilters.add(filter);
}
}
// 通过将operator参数设置为Operator.MUST_PASS_ONE,达到list中各filter为"或"的关系
// 默认operator参数的值为Operator.MUST_PASS_ALL,即list中各filter为"并"的关系
Filter filterList = new FilterList(FilterList.Operator.MUST_PASS_ONE,
listForFilters); scan.setFilter(filterList);// 多条件过滤
本文已同步至大数据技术( http://cloudera.org.cn ),文章地址:http://cloudera.org.cn/?p=28