HBase:自定义扫描程序仅按前缀检索列

Wan*_*rer 3 hbase

我正在使用扫描程序从HBase中检索行.我可以通过addColumn()方法设置我想要的列.但是,我真的需要能够检索所有以相同前缀开头的可变数量的列.

因此,我想要的所有列都以"USA"开头.我需要检索所有以此为开头的列,例如"USA-Virginia","USA-Hawaii"等.我不想要诸如"Canada-Quebec"之类的值.任何地方都没有完整列名的预定义值.我只需要以"USA"开头的所有人.有没有办法让HBase扫描仪这样做?我没有看到在那里编写自定义扫描仪的方式.

我正在查看自定义过滤器,但这似乎限制了我得到的行,而不是指定我想要返回的列.思考?

我无法更改数据的结构,我的所有数据都在一个列族中.

谢谢你的任何想法.我正在运行CDH3u4.

sul*_*bhc 5

你需要的是ColumnPrefixFilter按列前缀过滤键
http://archive.cloudera.com/cdh/3/hbase/apidocs/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.html

像这样的东西应该做的伎俩: -

filter = new ColumnPrefixFilter(Bytes.toBytes("USA"))
Run Code Online (Sandbox Code Playgroud)