Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2020-09-24, 02:11

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 2 篇文章 ] 
發表人 內容
 文章主題 : FilterList中加入n個filter
文章發表於 : 2014-03-12, 23:16 
離線

註冊時間: 2014-02-25, 19:18
文章: 2
大家好,小弟最近研究hadoop研究,
小弟希望在hbase中利用filterlist篩選出很多筆資料,
但是篩選的條件的個數可以是變數,小弟想到的方法是利用array但是顯然filter並沒有array。
請問各位先進有什麼方法可以解決類似的問題呢?

附上小弟的程式碼
代碼:
Configuration conf = HBaseConfiguration.create();
HTable table = new HTable(conf, TABLENAME);
Scan scan = new Scan();
scan.addColumn(Bytes.toBytes(TABLENAME), Bytes.toBytes("COLUMN"));//family name & column name
List<Filter> filters = new ArrayList<Filter>();
for(channelnum=0;channelnum<args.length-2;channelnum++){
   Filter filter[channelnum] = new ValueFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes(args[channelnum+2])));
   filters.add(filter[channelnum]);
}
FilterList filterlist = new FilterList(FilterList.Operator.MUST_PASS_ONE, filters);
scan.setFilter(filterlist);
ResultScanner scanner = table.getScanner(scan);
for(Result res : scanner){
   for (KeyValue kv : res.raw()) {
      System.out.println(String.format("row:%s, family:%s, qualifier:%s, qualifiervalue:%s, timestamp:%s.",
                        Bytes.toString(kv.getRow()),
                        Bytes.toString(kv.getFamily()),
                        Bytes.toString(kv.getQualifier()),
                        Bytes.toString(kv.getValue()),
                        kv.getTimestamp()));
   }
}
scanner.close();


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: FilterList中加入n個filter
文章發表於 : 2014-03-13, 16:00 
離線

註冊時間: 2014-02-25, 19:18
文章: 2
抱歉小弟我笨了,因為filter產生完就加入filterlist所以可以用同一個變數
代碼:
for(channelnum=0;channelnum<args.length-2;channelnum++){
   Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes(args[channelnum+2])));
   filters.add(filter);
}

這樣就可以達到我要的方式了!


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 2 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作