返回顶部

收藏

python使用mongo的mapreduce实现简单的统计和group by操作

更多
mongo里面的数据是这样的:
doc1 = {
“freq”:1
…..
}
doc2 = {
“freq”:3
…..
}

要求是统计出freq=1的文档个数,freq=2的文档的个数。。。 典型的mapreduce任务,正好试试mongo的mapreduce。 感觉还行,做一些简单的聚集操作还凑活,看看回头有没有更复杂一些的应用。

   #!/usr/bin/env python

import pymongo

from bson.code; import Code

def calc_freq_distribution(collection_handler):

    out_collection_name = collection_handler.name+'_freqdist'

    map = Code("function () {"

                "emit(this.freq, {count:1});"

                "}")

    reduce = Code("function (key, values) {"

                   "  var total = 0"

                   "  for (var i = 0 i < values.length; i++) {"

                   "    total += values[i].count;"

                   "  }"

                   "  return {count:total};"

                   "}")

    result = collection_handler.map_reduce(map, reduce, out = out_collection_name)

    fname = out_collection_name+'.csv'

    with open(fname, 'w') as f:

        for doc in result.find;():

            f.write;(','.join([str(doc['_id']), str(doc['value']['count'])])+'\n')

if __name__ == '__main__':

    conn = pymongo.Connection;(['192.168.1.1'], 27018)

    input_collection= conn.cname.things;

    print calc_freq_distribution(merge_spam)

    merge_ham = conn.antispam.mergeham;

    print calc_freq_distribution(merge_ham)

标签:mapreduce,mongodb

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2013-08-07 13:57:55 MongoDB Connector for Hadoop
  2. Liwen 发表 2011-10-09 08:26:54 在MongoDB中sum某个字段
  3. Zida 发表 2016-03-19 08:20:43 MongoDB MapReduce实践
  4. kafka0102 发表 2010-09-18 13:15:02 mongodb MapReduce使用初步
  5. Zida 发表 2016-03-19 08:20:43 MongoDB MapReduce实践
  6. Liwen 发表 2011-10-09 08:26:54 在MongoDB中sum某个字段
  7. H.E. 发表 2010-11-08 10:54:02 HBase入门篇2-Java操作HBase例子
  8. 博主 发表 2013-03-15 10:25:24 Paper: YSmart - Yet Another SQL-to-MapReduce Trans
  9. nosqlfan 发表 2013-03-20 02:24:19 MongoDB 2.4版本发布
  10. Dong 发表 2013-03-28 12:21:16 Apache Tez:一个运行在YARN之上支持DAG作业的计算框架
  11. 博主 发表 2013-04-04 12:08:28 Dataguise Presents 10 Best Practices for Securing
  12. ruohanc 发表 2013-06-10 14:16:21 我是否应该使用mongodb?(即 mongodb 能比 mysql 更好的解决我面临的问题吗?)

发表评论