Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HBase:仅按前缀检索列的自定义扫描程序_Hbase - Fatal编程技术网

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

HBase:仅按前缀检索列的自定义扫描程序,hbase,Hbase,我正在使用扫描仪从HBase检索行。我可以通过addColumn()方法设置要返回的列。然而,我真的需要能够检索以相同前缀开头的可变数量的列 所以,我想要的所有专栏都以“USA”开头,例如。我需要检索以它开头的所有列,例如“USA Virginia”、“USA Hawaii”等。我不想要“Canada Quebec”等值。任何地方都没有预定义的全列名称值。我只需要所有以“USA”开头的字母。有没有办法让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
,这可能会解决您的问题。

结果表明,这其实不是我的问题。我试过这个,但不起作用。问题真的出现在我之后使用的过滤器列表中。感谢您的快速回复。您是如何解决此问题的?我也有类似的需要。