gpt4 book ai didi

java - 使用java在hbase中检索任意三个随机限定符

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

我的 hbase 表如下所示:

hbase(main):040:0> scan 'TEST' 
ROW COLUMN+CELL
4 column=data:108, timestamp=1399972960190, value=-240.0
4 column=data:112, timestamp=1399972960138, value=-160.0
4 column=data:12, timestamp=1399972922979, value=2
4 column=data:120, timestamp=1399972960124, value=-152.0
4 column=data:144, timestamp=1399972960171, value=-240.0
4 column=data:148, timestamp=1399972960152, value=-240.0
4 column=data:16, timestamp=1399972909606, value=9
4 column=data:8, timestamp=1399972917978, value=6

其中所有 4 都是行 ID,108,112,12... 是限定符。我想从此表 TEST 中随机获取三个限定符。

我可以获取所有限定符,但不能获取随机的三个限定符。 Java 中是否有任何 shell 命令或 API 可以实现此目的?

最佳答案

如果只是获取前三行,请使用 scan shell 命令并将 LIMIT 设置为 3:

hbase(main):001:0> scan 'demo', {LIMIT => 3}

如果您希望使用 Java API 执行此操作,请在 ResultScanner 上设置一个循环,该循环在第三次迭代后中断。简单易行。

public static void main(String[] args) throws IOException {

Configuration conf = HBaseConfiguration.create();
HTable table = new HTable(conf, "demo");
Scan s = new Scan();
ResultScanner rs = table.getScanner(s);
int check = 0;
for(Result r : rs){
if(++check > 3)
break;
for (KeyValue kv : r.raw()){
System.out.println("Qualifier : " + Bytes.toString(kv.getQualifier()));
}
}
rs.close();
table.close();
}
}

如果你想得到 3 个随机行,使用 RandomRowFilter 使用上述方法。

HTH

关于java - 使用java在hbase中检索任意三个随机限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23627847/

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