使用SingleColumnValueFilter在hbase过滤器中无法比较int值

时间:2019-08-29 07:32:51

标签: java hbase

将int值与特定限定符进行比较无法正常工作。

我尝试使用new BinaryComparator,但不起作用。

FilterList fl = new FilterList();

SingleColumnValueFilte filter = new SingleColumnValueFilter(
        Bytes.toBytes("dynamic"),Bytes.toBytes("speed"),CompareOp.GREATER_OR_EQUAL,
        new BinaryComparator(Bytes.toBytes(10));

我同时尝试了"10"10,但是没有用。

fl.addFilter(filter);
Scan s = new Scan(Bytes.toBytes("235091871:2015-01-01T00:02:58"),Bytes.toBytes("235091871:2015-01-01T00:22:19"));

System.out.println("hello scan");

s.addColumn(Bytes.toBytes("dynamic"),Bytes.toBytes("speed"));

s.setFilter(filter);

ResultScanner rs = table.getScanner(s);

for (Result res : rs) {
    for (KeyValue result : res.raw()) {
        System.out.println(Bytes.toString(result.getRow())+" "+Bytes.toString(result.getValue()));
    }   
}

我的速度值为10.3、10.4、11.1、9.6、8.3

当我使用10.3,10.4,11.4处理或过滤时,输出应为CompareOp.GREATER_OR_EQUAL

如果我需要编写自定义比较器,请建议如何使用代码。

0 个答案:

没有答案