gpt4 book ai didi

hadoop - Hbase - 通过列名前缀获取行的列名

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

我有一个具有以下描述的 Hbase 表。

对于行键,我的列将采用 a_1、a_2、a_3、b_1、c_1、C_2 等形式,这是一种复合键格式。

假设我的行之一是

row key - row1
column family - c1
columns - a_1, a_2,a_3,b_1,b_2,c_1,C_2,d_9,d_99

我可以通过任何操作检索 a、b、c、d 作为对应于 row1 的列吗,我不关心 a、b、c 的后缀是什么...

我可以获取给定行的所有列名,通过按第一部分拆分行键将它们添加到集合中并发出集合。我很担心,如果有更好的方法通过过滤器或其他一些 hbase 方法来完成它,请发表评论...

最佳答案

您可以为此使用 COlumnPrefixFilter。可以看到如下代码

    Configuration hadoopConf = new Configuration();
hadoopConf.set("hbase.zookeeper.quorum", "localhost");
hadoopConf.set("hbase.zookeeper.property.clientPort", "2181");

HTable hTable = new HTable(hadoopConf, "KunderaExamples");

Scan scan = new Scan();
scan.setFilter(new ColumnPrefixFilter("A".getBytes()));
ResultScanner scanner = hTable.getScanner(scan);
Iterator<Result> resultsIter = scanner.iterator();
while (resultsIter.hasNext())
{

Result result = resultsIter.next();

List<KeyValue> values = result.list();
for (KeyValue value : values)
{
System.out.println(value.getKey());
System.out.println(new String(value.getQualifier()));
System.out.println(value.getValue());
}
}

关于hadoop - Hbase - 通过列名前缀获取行的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755058/

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