论坛首页 Java版 设计模式

海量数据统计的方法?

浏览 11496 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
时间:2008-07-17
举个例子,我现在有海量的数据(以词为例),我想统计每个词各自出现的次数,不知道用什么方法或结构速度最快。
   
时间:2008-07-17
看海量到什么程度。
最块的方法就是丢到hashmap里。
key就是词,value为出现次数。
   
0 请登录后投票
时间:2008-07-17
zbird 写道
看海量到什么程度。
最块的方法就是丢到hashmap里。
key就是词,value为出现次数。



现在就是这么做的,速度跟不上。现在测试300W左右数据,需用时6秒。
   
0 请登录后投票
时间:2008-07-17
最主要改写hashmap里面的方法 去掉所有没必要的函数
特别是put的时候
   
0 请登录后投票
时间:2008-07-17
chbest 写道
最主要改写hashmap里面的方法 去掉所有没必要的函数
特别是put的时候


没看到HashMap的put有什么没必要的函数啊。。感觉用map始终没法达到要求。
   
0 请登录后投票
时间:2008-07-17
如果是非常海量的话,那只能考虑用搜索引擎做索引的这部分功能了,可以看一下lucene的倒排索引原理,如果是不多的文本文件,用java的正则表达式做匹配可以做到
   
0 请登录后投票
时间:2008-07-17
ladofwind 写道
如果是非常海量的话,那只能考虑用搜索引擎做索引的这部分功能了,可以看一下lucene的倒排索引原理,如果是不多的文本文件,用java的正则表达式做匹配可以做到


现在做的就是从索引里检索出来的结果数据的再次统计。
从索引检索到结果后,需要对结果中的某些字段再次进行统计。。。。。。。
   
1 请登录后投票
时间:2008-07-17
记得我刚毕业的时候,我师傅给我说过,hash是解决性能瓶颈的万金油
   
0 请登录后投票
时间:2008-07-17
300W谈不上海量吧,可以分块搞成并发处理,或者试试map-reduce
   
0 请登录后投票
时间:2008-07-17
dennis_zane 写道
300W谈不上海量吧,可以分块搞成并发处理,或者试试map-reduce


现在测试,一个节点的数据大概300W,查询的条件控制返回所有的结果。现在统计一个字段要4s,不敢想象多个节点的情况。
   
0 请登录后投票
论坛首页 Java版 设计模式

跳转论坛:
JavaEye推荐