Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java检索hbase中的任意三个随机限定符_Java_Hadoop_Mapreduce_Hbase_Bigdata - Fatal编程技术网

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

使用java检索hbase中的任意三个随机限定符,java,hadoop,mapreduce,hbase,bigdata,Java,Hadoop,Mapreduce,Hbase,Bigdata,我的hbase表如下所示: hbase(main):040:0> scan 'TEST' ROW COLUMN+CELL 4 column=data:108, timestamp=1399972960190, value=-240.0

我的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和108112,12。。。是限定词。我想从这个表测试中随机获取三个限定符


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

如果只是获取前三行,请使用扫描shell命令,并将限制设置为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个随机行,请使用上述方法


HTH

如果我只能获得前三个资格赛,那没关系。如果有人知道,请回答。如果你知道这个,请回答