mapReduce-努力找到正确的数字

时间:2018-10-21 13:27:27

标签: mongodb mapreduce dataset

所以我要提前,我需要一些有关MongoDB上MapReduce作业的帮助。

我们正在为此作业使用“邮政编码”数据集,该集合中的文档示例如下:

  

“ id”:“ 01035”,“ city”:“ HADLEY”,“ loc”:[-72.571499,42.36062],   “ pop”:4231,“ state”:“ MA”}

在本作业的最后一个问题中,我被要求在一个mapReduce工作中做很多事情,主要是我必须:计算每个州的平均人口和人口的标准差。现在我想出了如何计算这些值,并且已经对它们进行了reduce函数,我的唯一问题是我无法弄清楚如何找到状态数,我知道它是50,但是我必须弄清楚使用mapReduce ...

在一个mapReduce工作中,我可以做:

var mymapfunction = function() {emit(1,this.state);};
var myreducefunction = function(key,values){
var nb=0; 
values.forEach(function(v){nb+=1;}); 
return nb;};
db.zips.mapReduce(mymapfunction, myreducefunction, {out:"countState"}).find()

返回50,这就是我想要的。

但是到目前为止,我一直在尝试复制此结果,同时还在一项工作中查找所有要求我提供的其他数据,但并没有取得太大的成功……说实话,我已经尝试了很长时间了靠我自己解决这个问题,但我似乎无法取得任何进展,这使我无所适从...你们所能提供的任何帮助都将受到赞赏,即使这只是在正确方向上的推动!

顺便说一句,我的map函数需要发出:

  • 状态数:nb
  • 总人口:总和
  • 人口最多的州:最大

通过finalize函数的平均值,标准差和方差。

我只是在努力寻找一种计算状态数的方法,其余的我可以管理!

我也想说,通过做一个mapReduce作业来回答这个问题,我设法做到了,但是在完成所有其他要求我的同时,我却以某种方式无法找到价值。正在寻找...

0 个答案:

没有答案