gpt4 book ai didi

hadoop - 如何获取Hbase中的特定行?

转载 作者:可可西里 更新时间:2023-11-01 15:20:17 26 4
gpt4 key购买 nike

我在 HBase 中的 rowKeys 是这样的;

a1s1
a1s2
a1s3
a2s1
a3s1
a3s2
...

我只想获取这些数据;

a1s1
a2s1
a3s1

但是当我运行这个查询时; 扫描 't1', {STARTROW=>'a1s1', ENDROW=>'a4s1'}

它给了我;

a1s1
a1s2
a1s3
a2s1
a3s1

但我不想得到a1s2 和a1s3。我该怎么做?

最佳答案

您应该使用 STARTROW-ENDROW 和另一个带有 RegexStringComparator 的过滤器。如果您仅使用起始行过滤器,则 hbase 会对行键中的每个字符执行此过滤。因为 rowkey 不是数字。在 Hbase shell 中你可以试试这个:

import org.apache.hadoop.hbase.filter.CompareFilter

import org.apache.hadoop.hbase.filter.RegexStringComparator

scan 't1', {STARTROW => 'a1s1', ENDROW => 'a4s1', FILTER => org.apache.hadoop.hbase.filter.RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),RegexStringComparator.new("s1$"))}

关于hadoop - 如何获取Hbase中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54767318/

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