有人知道如何扫描记录基于一些扫描过滤器,例如:
column:something =“somevalue”
有点像this,但是从HBase shell?
尝试这个。这是一种丑陋,但它适用于我。
import org.apache.hadoop.hbase.filter.CompareFilter import org.apache.hadoop.hbase.filter.SingleColumnValueFilter import org.apache.hadoop.hbase.filter.SubstringComparator import org.apache.hadoop.hbase.util.Bytes scan 't1',{ COLUMNS => 'family:qualifier',FILTER => SingleColumnValueFilter.new (Bytes.toBytes('family'),Bytes.toBytes('qualifier'),CompareFilter::CompareOp.valueOf('EQUAL'),SubstringComparator.new('somevalue')) }
HBase shell将包括你在〜/ .irbrc中的任何内容,所以你可以把这样的东西(我没有Ruby专家,欢迎改进):
# imports like above def scan_substr(table,family,qualifier,substr,*cols) scan table,{ COLUMNS => cols,FILTER => SingleColumnValueFilter.new (Bytes.toBytes(family),Bytes.toBytes(qualifier),SubstringComparator.new(substr)) } end
然后你可以在shell中说:
scan_substr 't1','family','qualifier','somevalue','family:qualifier'