我正在使用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”之间的数据,而无需更改数据类型。
没有错误消息即将来临,没有数据正在获取