将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
。
如果我需要编写自定义比较器,请建议如何使用代码。