gpt4 book ai didi

nosql - 如何根据 HBase shell 中的行模式扫描行?

转载 作者:行者123 更新时间:2023-12-04 00:10:18 25 4
gpt4 key购买 nike

我想使用匹配某种模式的行从 HBase shell 扫描 HTable 中的行。

比如我有如下表格数据:

    row:r1_t1  column:cf:a, timestamp=1461911995948,value=v1
row:r2_t2 column:cf:a, timestamp=1461911995949,value=v2
row:s1_t1 column:cf:a, timestamp=1461911995950,value=q1
row:s2_t2 column:cf:a, timestamp=1461911995951,value=q2

根据上述数据,我想找到包含“t1”的行:

    row:r1_t1  column:cf:a, timestamp=1461911995948,value=v1
row:s1_t1 column:cf:a, timestamp=1461911995950,value=q1

我知道我可以使用 PrefixFilter 扫描表格,但此方法获取以指定过滤器开头的行。

    scan 'test', {FILTER => "(PrefixFilter('s')"}

是否有类似的基于过滤行名称中间模式匹配的行来扫描表的方法?

最佳答案

hbase(main):003:0> scan 'test', {ENDROW => 't1'}

一般来说,使用 PrefixFilter 可能会很慢,因为它会执行表扫描直到到达前缀。

也可以将 RowFilter 与 SubstringComparator 一起使用像下面一样

可以将 RowFilterSubstringComparator 一起使用,如下所示

hbase(main):003:0> import org.apache.hadoop.hbase.filter.CompareFilter
hbase(main):005:0> import org.apache.hadoop.hbase.filter.SubstringComparator
hbase(main):006:0> scan 'test', {FILTER => org.apache.hadoop.hbase.filter.RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),SubstringComparator.new("searchkeyword"))}

关于nosql - 如何根据 HBase shell 中的行模式扫描行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36932053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com