无法按列值在两列之间进行过滤

时间:2019-07-26 06:20:07

标签: java hbase

我正在使用hbase来存储数据。我想在两个列值之间过滤数据。我试图从hbase提取数据,无法做到。我该怎么做?

列族为column_cf
列名称为column_id

我将column_id作为字符串存储在hbase列中。 我尝试使用SingleColumnValueFilter和运算符(例如比比较器大或小)进行过滤。

下面的代码不起作用!

long a = 1111111111;
long b = 2222222222;
SingleColumnValueFilter startFilter = new SingleColumnValueFilter(Bytes.toBytes("column_cf"), Bytes.toBytes("column_id"), CompareOp.GREATER_OR_EQUAL, Bytes.toBytes(String.valueOf(a)));
SingleColumnValueFilter endFilter = new SingleColumnValueFilter(Bytes.toBytes("column_cf"), Bytes.toBytes("column_id"), CompareOp.LESS_OR_EQUAL, Bytes.toBytes(String.valueOf(b)));
FilterList filterbyData = new FilterList();
filterbyData.addFilter(startFilter);
filterbyData.addFilter(endFilter);
scan.setFilter(filterbyData);

hbase中的数据是:“ 1234567890”,“ 1010101010”,“ 1112345321”,.......,“ 2324334242”。
我需要获取“ 1111111111”和“ 2222222222”之间的数据,而无需更改数据类型。

没有错误消息即将来临,没有数据正在获取

0 个答案:

没有答案