2012-12-20 479 views
0

在這裏,我試圖得到最大值的行和它的價值。 代替OD標準的迭代,我想知道是否存在任何功能如何從值列中的hbase表中獲取最大值?

Scan s = new Scan(); 
ResultScanner re = table.getScanner(s); 
int maxVal =0;   
try{ 
    for (Result rr = re.next(); rr != null; rr = re.next()) { 
     byte [] row = rr.getRow(); 
     Get g = new Get(row); 
     Result r = table.get(g);     
     String rn = Bytes.toString(r.value()); 
     int temp = Integer.parseInt(rn); 
     if(maxVal < temp) 
     maxVal = temp; 
    } 
    System.out.println(maxVal); 
} 
finally { 
    re.close(); 
} 

回答

0

有一個最大()方法,但它是目前在「org.apache.hadoop.hbase.client.coprocessor」。如果你可以使用協處理,那麼你可以試試看。它給出給定範圍的給定列族的列的最大值。您可以將第一列和最後一列作爲範圍,並獲取最大值。欲瞭解詳細信息,你可以去here