我正在查询HBase使用limit子句获取一组键和值。这是查询
hbase(main):015:0> scan 'sample_table', {FILTER => "KeyOnlyFilter()",TIMESTAMP => 11, LIMIT => 2}
我得到一些输出。如果我重复相同的查询,我得到相同的输出。每次执行查询时我需要的是不同的输出。在Hive中,每次使用LIMIT子句查询时,我们都可以使用rand()
来获取不同的输出。我想知道HBase中是否有类似内容?
答案 0 :(得分:1)
您可以使用RandomRowFilter
。构造函数参数chance
是一行包含在结果中的概率。
由于默认情况下shell使用ParseFilter
并且它不支持此过滤器,因此我们将无法使用像"RandomRowFilter(0.10) AND PageFilter(10)"
这样的简单过滤器字符串。而是使用这样的东西:
module B
include_package 'org.apache.hadoop.hbase.filter'
end
filters=B::FilterList.new
filters.addFilter(B::RandomRowFilter.new(0.10))
filters.addFilter(B::PageFilter.new(10))
scan "some_table",{FILTER=>filters}
答案 1 :(得分:0)
如果您对行键前缀有所了解,请尝试以下操作:
scan 'table1', {ROWPREFIXFILTER => 'xyz'}
此外,如果您了解开始和结束键,
scan 'table2', {STARTROW => 'abc', ENDROW => 'xyz'}