分享

hbase过滤器不起作用


hbase使用过滤器查找 1000=<FLOW<=2000的不生效,是什么原因
Bytes.toBytes(Long.valueOf("1000"))   只支持string过滤,不支持数值类型?

[mw_shl_code=java,true]FilterList list = new FilterList(Operator.MUST_PASS_ALL);
        list.addFilter(new SingleColumnValueFilter(Bytes.toBytes("F"), Bytes.toBytes("FLOW"),
                CompareOp.GREATER_OR_EQUAL, Bytes.toBytes(Long.valueOf("1000"))));
        list.addFilter(new SingleColumnValueFilter(Bytes.toBytes("F"), Bytes.toBytes("FLOW"),
                CompareOp.LESS_OR_EQUAL, Bytes.toBytes(Long.valueOf("2000"))));
        scan.setFilter(list);[/mw_shl_code]

已有(2)人评论

跳转到指定楼层
sstutu 发表于 2018-8-23 13:49:01
各自运行是否有效。
回复

使用道具 举报

一曲离殇 发表于 2018-8-23 21:00:34
sstutu 发表于 2018-8-23 13:49
各自运行是否有效。

示例:有三行数据值分别为[500, 10240, 300],需要过滤>2000的
Bytes.toBytes(Long.valueOf("2000"))  数字类型不生效,运行后[500, 1024, 2000]Bytes.toBytes("2000") 字符类型生效,是按字符串过滤的,[500, 300]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条