[英]Hbase filter to find rows without a specific column
I want to filter out all rows that do not have a specific column. 我想过滤掉所有没有特定列的行。 any idea which comparator to use? 知道哪个比较器使用?
You can use skip filter combined with qualifier filter . 您可以使用跳过过滤器和限定符过滤器 。 If you use the java client API: 如果您使用java客户端API:
Filter filter = new QualifierFilter(CompareFilter.CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("column-name")));
Filter filter2 = new SkipFilter(filter);
scan.setFilter(filter2);
this will return all the row without that specific column 这将返回没有该特定列的所有行
SingleColumnValueFilter has method setFilterIfMissing
that excludes all row that do not contain given column if it is given true
. SingleColumnValueFilter有方法setFilterIfMissing
排除,如果它被赋予不包含给定列中的所有行的true
。 All that is needed is to design filter so it will always pass and call setFilterIfMissing(true)
所需要的只是设计过滤器,以便它总是通过并调用setFilterIfMissing(true)
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes(columnFamily), Bytes.toBytes("column_name"), CompareFilter.CompareOp.NOT_EQUAL, Bytes.toBytes("non-sense"));
filter.setFilterIfMissing(true);
scan.setFilter(filter);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.