首页 > 解决方案 > SingleColumnValueFilter 未正确过滤表

问题描述

我的 Hbase 表中有这段数据

put 't2','submission|007|313|assignment|1','SUBMISSION:sdate','04-APR-2011'
put 't2','submission|007|313|assignment|1','SUBMISSION:esignature','lh'
put 't2','submission|007|313|assignment|1','SUBMISSION:totalfiles','2'
put 't2','submission|007|313|assignment|1','SUBMISSION:dayslate','0'
put 't2','submission|007|313|assignment|1','SUBMISSION:type','assignment'
put 't2','submission|007|313|assignment|1','SUBMISSION:tnumber','2'
put 't2','submission|007|313|assignment|1','STUDENT:snumber','007'
put 't2','submission|007|313|assignment|1','SUBJECT:code','313'
put 't2','submission|007|313|assignment|1','FILES:fnumber1','path/file-name3-1'


put 't2','submission|666|312|assignment|1','SUBMISSION:sdate','05-APR-2011'
put 't2','submission|666|312|assignment|1','SUBMISSION:esignature','hp'
put 't2','submission|666|312|assignment|1','SUBMISSION:totalfiles','2'
put 't2','submission|666|312|assignment|1','SUBMISSION:dayslate','0'
put 't2','submission|666|312|assignment|1','SUBMISSION:type','assignment'
put 't2','submission|666|312|assignment|1','SUBMISSION:tnumber','1'
put 't2','submission|666|312|assignment|1','STUDENT:snumber','666'
put 't2','submission|666|312|assignment|1','SUBJECT:code','312'
put 't2','submission|666|312|assignment|1','FILES:fnumber1','path/file-name1-1'
put 't2','submission|666|312|assignment|1','FILES:fnumber2','path/file-name1-1'

我在这里想要实现的是获取SUBJECT:code所有提交条目中STUDENT:snumber666

我试过了RowFilterValueFilter但都没有返回数据。

我最近的尝试是使用SingleColumnValueFilterwhich 应该可以解决我的问题,但不知何故SingleColumnValueFilter根本不会过滤!这是 Hbase 外壳:

scan 't2', {COLUMN=>'SUBJECT:code', FILTER => "SingleColumnValueFilter('STUDENT','snumber',=,'binary:666')"}

当我运行上面的,它返回:

 submission|007|313|assignment|1                     column=SUBJECT:code, timestamp=1622478374359, value=313                                                                                                                                                                                          
 submission|666|312|assignment|1                     column=SUBJECT:code, timestamp=1622478377064, value=312   

我想要的预期结果应该是

 submission|666|312|assignment|1                     column=SUBJECT:code, timestamp=1622478377064, value=312   

我不明白为什么SingleColumnValueFilter不工作。我在这里想念什么?

标签: shellnosqlhbase

解决方案


推荐阅读