2012-09-28 53 views

回答

6

這是非常相似,你會怎麼用任何編程語言編寫,比如: -

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'))} 

顯然,你必須改變取決於您使用fiter參數。

7

可以實例任何過濾器,你會在Java中(使用JRuby語法)做同樣的方式,並提供過濾器:

filter = ... 
scan 'mytable', FILTER => filter 

然而,在shell實例化過濾器直接會很麻煩,所以更簡單的方法是使用過濾器語言將過濾器作爲字符串提供。例如,包括所有與掃描值等於「myvalue的」列可以使用:

scan 'mytable', FILTER => "ValueFilter(=, 'binary:myvalue') 

可以檢查this document作爲「過濾語言參考。

4

此外,掃描子串的特定列,你可以這樣做:

scan 'myTable', { COLUMNS => 'cf:abc', FILTER => "ValueFilter(=, 'substring:myvalue')"} 
相關問題