首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

FirstKeyOnlyFilter的使用方法及范例

2012-08-27 
FirstKeyOnlyFilter的使用方法及实例FirstKeyOnlyFilter :api中解释如下: A filter that will only return

FirstKeyOnlyFilter的使用方法及实例

FirstKeyOnlyFilter :api中解释如下:

 A filter that will only return the first KV from each row.

This filter can be used to more efficiently perform row count operations. 

说的明明白白,只会取得每条数据的第一个kv,可以用于count,计算总数,速度很快

代码如下:

希望批评指正

public int getCount() {long bef = System.currentTimeMillis();int i = 0;                                                                                                                          HTable tableKeyword = new HTable(conf,"tableName");                                                                                 tableKeyword.setScannerCaching(500);ResultScanner rs = null;try {Scan s = new Scan();s.setCaching(500);s.setCacheBlocks(false);s.setFilter(new FirstKeyOnlyFilter());rs = tableKeyword.getScanner(s);} catch (IOException e) {log.warn(e);e.printStackTrace();}for (org.apache.hadoop.hbase.client.Result r : rs) {i++ ;}long now = System.currentTimeMillis();log.warn("keyword表中数据总数 :" + i + ", 所用时间 : " + (now - bef)/1000.0);rs.close();return i;}


最好设置tableKeyword.setScannerCaching(500);

s.setCaching(500);
s.setCacheBlocks(false);这三个参数,否则速度会降下来很多

总的来说,可以节省很多时间

热点排行