2016-07-13 51 views
1

在執行數據掃描時,是否有辦法限制連續數據的總行數?HBase - Java客戶端限制掃描結果說明?

注:

  • 我50萬個總行
  • 工作,我都試過setMaxResultSize和setMaxResultsPerColumnFamily。這被證明是無效的(似乎有一些行爲,當這兩個都設置爲低數字或setMaxResultSize更大。這兩個函數之間有什麼關係?)
  • 我已經設置一個PageFilter(大小10) ,並且該行爲顯示5個不同的序列數據集10.
  • 實際上,通過將PageFilter大小和setMaxResultSize設置爲相等來輸入此值,我實際上已將其設置爲sudo-working。當我改變它時,它符合PageFilter。如果我使setMaxResultSize大得多,它也會跳轉到另一個大的PageFilter大小的子集。
  • HBase的版本是1.1.1

更好的人能解釋這裏發生了什麼,以及如何得到我想要的結果嗎?

回答

1

您可以使用hbase shell或hbase java客戶端。

1- HBase的殼:使用該命令和管道的結果到一個文件,並做 「WC -l ...」

計數 '表名',1個

2- java的HBase的客戶端API

long count=0; 
String row=""; 

for (Result res : scanner) 
{ 
    for (Cell cell : res.listCells()) 
    { 
     row = new String(CellUtil.cloneRow(cell)); 
     if(!row.equals("")) 
      count++; 
    } 
} 
+0

java示例看起來像計算非空行,不限制返回的數據。 – Rick

+0

您可以更改該邏輯。重點是迭代你的掃描儀來計算你需要計數的任何東西。 – user3338391

+2

但我不想指望什麼。我想限制返回的行。 – Rick