3

スキャナーを使用して HBase から行を取得しています。addColumn() メソッドを使用して、戻す列を設定できます。ただし、すべて同じプレフィックスで始まる可変数の列を取得できる必要があります。

したがって、たとえば、必要なすべての列は「USA」で始まります。「USA-Virginia」、「USA-Hawaii」など、それで始まるすべての列を取得する必要があります。「Canada-Quebec」などの値は必要ありません。完全な列名の定義済みの値はどこにもありません。「USA」で始まるすべてが必要です。HBase スキャナーでこれを行う方法はありますか? カスタム スキャナを作成する方法については、あまり見かけません。

カスタムフィルターを見ていましたが、返される列を指定するのではなく、取得する行を制限しているようです。考え?

データの構造を変更できず、すべてのデータが 1 つの列ファミリーの下にあります。

アイデアをありがとう。私はCDH3u4を実行しています。

4

2 に答える 2

5

必要なのは、列のプレフィックス
http://archive.cloudera.com/cdh/3/hbase/apidocs/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.htmlでキーをフィルタリングする ColumnPrefixFilter です。

このような何かがうまくいくはずです:-

filter = new ColumnPrefixFilter(Bytes.toBytes("USA"))
于 2012-05-22T22:35:50.460 に答える
0

Try using org.apache.hadoop.hbase.filter.SubstringComparator, that might solve your problem.

于 2012-05-25T07:27:32.457 に答える