我的hbase表中有这一行:{rowkey:1_1611646861574/cf:value/1611646776287/put/vlen=8/seqid=0}现在我想做一个简单的扫描,查找列值大于“161138830000”的行。但不返回任何记录;但是,当我使用少于或等于1611647500000时,它返回此记录。奇怪的是我可以从ApachePhoenixSQL查询中得到这个记录:select*from my_table where value>=1611388300000。
所以number明显大于column值,apachephoenix返回它;为什么hbase compare操作符没有?
这是我的密码:
Table table = con.getTable(TableName.valueOf("my_table"));
Scan scan = new Scan();
scan.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("value"));
FilterList flist = new FilterList(FilterList.Operator.MUST_PASS_ALL);
flist.addFilter(new PrefixFilter(Bytes.toBytes("1")));
flist.addFilter(new SingleColumnValueFilter(
Bytes.toBytes("cf"), Bytes.toBytes("value"), CompareOperator.GREATER_OR_EQUAL,
new BinaryComparator(Bytes.toBytes("1611388300000"))));
scan.setFilter(flist);
ResultScanner scanner = table.getScanner(scan);
for (Result result = scanner.next(); result != null; result = scanner.next())
System.out.println("Found row : " + result);
scanner.close();
1条答案
按热度按时间d5vmydt91#
我不知道为什么,但小于或等于字符串:
但当我使用引号时,较大的\u或\u equal不起作用,所以我必须使用number(添加l以指定long)