我在 col 家族 (CF) 中有 3 个 cols {col1, col2, col3}。我想编写一个扫描,以便选择所有具有 col1='val1' and col2='val2' and (col3 is missing or col3 is null) 的行。

在 Java 中执行此操作 - 抱歉,我对 hbase 完全陌生;-)

最佳答案

我自己在网上找到答案时遇到了很多麻烦。我终于想通了,它很简单 - 只是没有回答:

    Scan scanner = new Scan();

    SingleColumnValueFilter filter = new SingleColumnValueFilter(
        Bytes.toBytes( "some family" ),
        Bytes.toBytes( "some column" ),
        CompareFilter.CompareOp.EQUAL,
        Bytes.toBytes( "" )
    );
    filter.setFilterIfMissing( false );

    scanner.setFilter( filter );
    return scanner;

解决方案的关键部分是将 setFilterIfMissing 设置为 false 并与空字符串进行比较。

10-07 22:08