本文介绍了使用java检索hbase中的第n个限定符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



在列表(集合)中,我们可以通过list.get()获取列表中的第n个元素i);

类似地,在hbase中有使用java API的方法,其中我可以通过给定行ID和ColumnFamily名称获得第n个限定符。



注意:我在单列中有单行的百万个限定符。

解决方案

对不起因为没有反应。忙于重要的事情。现在试试这个:

  package org.myorg.hbasedemo; 

import java.io.IOException;
import java.util.Scanner;

导入org.apache.hadoop.conf.Configuration;
导入org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
导入org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

public class GetNthColunm {

public static void main(String [] args)throws IOException {
Configuration conf = HBaseConfiguration.create();
HTable table = new HTable(conf,TEST);
Get g = new Get(Bytes.toBytes(4));
结果r = table.get(g);
System.out.println(输入列索引:);
扫描仪阅读器=新扫描仪(System.in);
int index = reader.nextInt();
System.out.println(index:+ index);
int count = 0; (KeyValue kv:r.raw()){
if(++ count!= index)
continue;

System.out.println(Qualifier:
+ Bytes.toString(kv.getQualifier()));
System.out.println(Value:+ Bytes.toString(kv.getValue()));
}
table.close();
System.out.println(完成。);






$ b

如果我有更好的方法可以让你知道做到这一点。


This question is quite out of box but i need it.

In list(collection), we can retrieve the nth element in the list by list.get(i);

similarly is there any method, in hbase, using java API, where i can get the nth qualifier given the row id and ColumnFamily name.

NOTE: I have million qualifiers in single row in single columnFamily.

解决方案

Sorry for being unresponsive. Busy with something important. Try this for right now :

package org.myorg.hbasedemo;

import java.io.IOException;
import java.util.Scanner;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

public class GetNthColunm {

    public static void main(String[] args) throws IOException {
        Configuration conf = HBaseConfiguration.create();
        HTable table = new HTable(conf, "TEST");
        Get g = new Get(Bytes.toBytes("4"));
        Result r = table.get(g);
        System.out.println("Enter column index :");
        Scanner reader = new Scanner(System.in);
        int index = reader.nextInt();
        System.out.println("index : " + index);
        int count = 0;      
        for (KeyValue kv : r.raw()) {
            if(++count!=index)
                continue;
            System.out.println("Qualifier : "
                    + Bytes.toString(kv.getQualifier()));
            System.out.println("Value : " + Bytes.toString(kv.getValue()));
        }       
        table.close();
        System.out.println("Done.");
    }
}

Will let you know if I get a better way to do this.

这篇关于使用java检索hbase中的第n个限定符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 01:46