2016-08-26 2 views
1

既知の行キーに対してHappybaseを使用してrowsクエリを実行し、フィルタに一致する行だけが返されるように値フィルタを追加したいとします。 HBaseので行を使用したハッピーベースのフィルタリング

あなたがそうのように、getコマンドにフィルタを供給することができますシェル:Happybaseで

get 'meta', 'someuser', {FILTER => "SingleColumnValueFilter ('cf','gender',=,'regexstring:^male$')"} 

あなたはscanコマンドにフィルタを追加することができますが、私はrowsクエリのオプションが表示されません。ここでは、それはscanためにどのように動作するかです:

rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')") 

Happybase(または任意の他のPythonのHBaseクライアントライブラリ)を使用して、(潜在的にランダム命じた行キーのための)フィルタrowsクエリを実行する方法はありますか?

私はそれが次のようになります(ただし、フィルタなしの引数はありません)想像:

rows = tab.rows(rows=['h_key', 'a_key', 'z_key'], filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')") 

答えて

0

は、フィルタで取得しますが、スタート/ストップ行をスキャンすることと等しいです。 Javaでは

rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')", 
        row_start="someuser", row_stop="someuser") 

FilterList組み合わせMultiRowRangeFilterSingleColumnValueFilte rは完全にあなたの需要を満たすこと、そしてそのことについてexampleがあります。

しかし、happyhbaseとしてHbase Thriftサービスを使用すると、don't support FilterListと思われるので、あなたの得意な方法は、あなたの例の各キーについて上記の手順を呼び出すことです。

+0

私は質問に何かを残して、私はそれを編集します。私が実行したいクエリは、ランダムに順序付けられた行キーのセットに対する 'rows'クエリです。順序がわからないので、行のキー範囲を使用できません。 – dsimmie

+0

@dsimmieは答えを更新して、私は現在の '' 'happybase'''バージョンで完璧な解決策があるとは思わない。 –

関連する問題