zoukankan      html  css  js  c++  java
  • 打算用mongodb mapreduce之前一定要知道的事!!!

    mapreduce其实是分批处理数据的,每一百次重新reduce处理,所以到reduce里的数据如果是101条,那就会分2次进入。

    这导致的问题就是在reduce中 如果 初始化 var count = 0;在循环中 count ++,最后输出的是1???

    避免都方法是,把数据存在返回的value里,这个value是会在循环进入reduce的时候重用的。在循环中 count  += value.count就能把之前都100加上了!!!

    还有如果只有一条数据,那它不会进入reduce,会直接返回。

    下面是具体例子:

                string map = @"
                function() {
                    var view = this;
                    emit(view.activity, {pv: 1});
                }";
                string reduce = @"        
                function(key, values) {
                    var result = {pv: 0};
                    values.forEach(function(value){ 
                       result.pv +=  value.pv;
                    });
                    return result;
                }";
                string finalize = @"
                function(key, value){
                    return value;
                }";
  • 相关阅读:
    Python模块:struct
    Python模块:hashlib
    Python模块:collections
    python:爬虫
    Python:进程
    Python:线程
    Python:socket
    Welcome to ARFA's cnblog ! (Click me)
    骗访问量的机房人物列传by xMinh
    关于我
  • 原文地址:https://www.cnblogs.com/amazingDuck/p/6094524.html
Copyright © 2011-2022 走看看