hbase シェル コマンド ラインから修飾子フィルターまたは ValueFilter を実行する方法を教えてください。
質問する
22151 次
3 に答える
9
これは、プログラミング言語でコーディングする方法と非常によく似ています。たとえば、次のようになります。
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.util.Bytes
scan 'tableName', {COLUMNS=>['CF:qualifier1', 'CF:qualifier2'], LIMIT=>10,
FILTER=>SingleColumnValueFilter.new(Bytes.toBytes('CF'),
Bytes.toBytes('qualifier1'), CompareFilter::CompareOp.valueOf('EQUAL'),
Bytes.toBytes('value'))}
使用するフィッターに応じて、明らかにパラメーターを変更する必要があります。
于 2012-09-28T16:12:17.433 に答える
7
Java で行うのと同じ方法で (JRuby 構文を使用して) 任意のフィルターをインスタンス化し、フィルターを次のように指定できます。
filter = ...
scan 'mytable', FILTER => filter
ただし、シェルでフィルターを直接インスタンス化するのは面倒な場合があるため、フィルター言語を使用してフィルターを文字列として提供するのが簡単な方法です。たとえば、値が「myvalue」に等しいすべての列をスキャンに含めるには、次のようにします。
scan 'mytable', FILTER => "ValueFilter(=, 'binary:myvalue')"
このドキュメントは、「フィルター言語」リファレンスとして確認できます。
(二重引用符を閉じるための編集)
于 2013-05-12T15:27:48.870 に答える
5
さらに、特定の列で部分文字列をスキャンするには、次のようにします。
scan 'myTable', { COLUMNS => 'cf:abc', FILTER => "ValueFilter(=, 'substring:myvalue')"}
于 2015-05-27T09:32:13.403 に答える