HBase:仅按前缀检索列的自定义扫描程序
我正在使用扫描仪从HBase检索行。我可以通过addColumn()方法设置要返回的列。然而,我真的需要能够检索以相同前缀开头的可变数量的列 所以,我想要的所有专栏都以“USA”开头,例如。我需要检索以它开头的所有列,例如“USA Virginia”、“USA Hawaii”等。我不想要“Canada Quebec”等值。任何地方都没有预定义的全列名称值。我只需要所有以“USA”开头的字母。有没有办法让HBase扫描程序执行此操作?我没有看到太多的方式编写自定义扫描仪在那里 我在看自定义过滤器,但这似乎只是限制了我得到的行,而不是指定我想要返回的列。想法 我无法更改数据的结构,并且我的所有数据都在一个列族下HBase:仅按前缀检索列的自定义扫描程序,hbase,Hbase,我正在使用扫描仪从HBase检索行。我可以通过addColumn()方法设置要返回的列。然而,我真的需要能够检索以相同前缀开头的可变数量的列 所以,我想要的所有专栏都以“USA”开头,例如。我需要检索以它开头的所有列,例如“USA Virginia”、“USA Hawaii”等。我不想要“Canada Quebec”等值。任何地方都没有预定义的全列名称值。我只需要所有以“USA”开头的字母。有没有办法让HBase扫描程序执行此操作?我没有看到太多的方式编写自定义扫描仪在那里 我在看自定义过滤器,
谢谢你的建议。我正在运行CDH3u4。您需要的是ColumnPrefexFilter,它可以根据关键字的列前缀筛选关键字
像这样的事情应该可以做到:-
filter = new ColumnPrefixFilter(Bytes.toBytes("USA"))
尝试使用
org.apache.hadoop.hbase.filter.SubstringComparator
,这可能会解决您的问题。结果表明,这其实不是我的问题。我试过这个,但不起作用。问题真的出现在我之后使用的过滤器列表中。感谢您的快速回复。您是如何解决此问题的?我也有类似的需要。