【发布时间】:2016-02-28 03:42:18
【问题描述】:
我正在通过仅使用我想要的特定列名和使用列过滤器的列范围设置 Scanner 来扫描 HBase。
添加单独的行:
known_fields.forEach(known_field ->scanner.addColumn("x".getBytes(), known_field.getBytes()));
我还要添加一个列过滤器:
scanner.setFilter(new ColumnRangeFilter(start, true, stop, true));
所有变量都有正确的值。我正在扫描如下
scanner.setCacheBlocks(false);
scanner.setBatch(1000);
ResultScanner results = null;
Table table = null;
try {
table = connection.getTable("table_test");
results = table.getScanner(scanner);
boolean hasPerformed;
for (final Result result : results) {
...
results 始终为空。但是,如果我注释掉scanner.setFilter(new ColumnRangeFilter(start, true, stop, true)); 或scanner.addColumn(,结果就很好了。它不适用于组合。
如何实现已知列和范围列的组合?
【问题讨论】:
-
@maxteneff:谢谢。但是解决方案是完全删除 addColumn,因为在该用例中 addColumn 属性是 ColumnRange 的一部分。我的用例不同。我需要使用
Scan,而不是Get。