0 0

HBase filterList没有效果5

FilterList filterList = new FilterList();

Scan s = new Scan();

SingleColumnValueFilter scvf = new SingleColumnValueFilter("content","test",CompareOp.EQUAL,"tt");

filterList.addFilter(scvf);

s.setFilter(filterList)

s.addColumn("content","test");

ResultScanner rs = table.getScanner(s);

for(Result r:rs){
   for(KeyValue keyValue:r.raw){
      System.out.println("family:"+new String(keyValue.getFamily()
             + "=====value:"+new String(keyValue.getValue()
             + "=====qualifer:"+new String(keyValue.getQualifier() ))
}
}

代码如上,得到的值不对

content:test=tt这行查询条件没有执行
执行的是s.addColumn("content","test");即查出了所有content:test这列的所有行,不仅仅是content:test=tt这一行

而如果将这行s.addColumn("content","test");   注释掉后,

查出的结果是HBase上的所有行

请问这是什么原因,求指导,万分感谢!

2014年4月05日 01:15

1个答案 按时间排序 按投票排序

0 0

SingleColumnValueFilter scvf = new SingleColumnValueFilter("content","test",CompareOp.EQUAL,"tt");

有这个api吗?  我看到我的代码里是如下:
scan.setFilter(new SingleColumnValueFilter(HBaseKFConstants.DAT,HBaseKFConstants.CID, CompareOp.EQUAL, Bytes.toBytes(cardID)));

你试试把 tt改为 Bytes.toBytes(tt)

2014年4月06日 20:41

相关推荐

Global site tag (gtag.js) - Google Analytics