, поэтому я буду честен, мне нужна помощь с домашней работой с MapReduce на MongoDB.
Мы используем для этой домашней работы набор данных "Zips", пример документа в этой коллекции выглядит следующим образом:
"id": "01035", "city": "HADLEY", "loc": [-72.571499, 42.36062], "pop": 4231, "state": "MA"}
В последнем вопросе этой домашней работы меня попросили сделать много вещей за одно задание mapReduce, в основном мне нужно было: вычислить среднюю численность населения и стандартное отклонение численности населения каждого штата.Теперь я понял, как рассчитать их, и уже сделал функцию уменьшения для них, моя единственная проблема в том, что я не могу понять, как найти число состояний, я знаю, что это 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, и это то, что я хочу.
Но до сих пор у меня естьпытался воспроизвести этот результат, одновременно ища все другие данные, которые меня просили, на одной работе, но без особого успеха ... Честно говоря, я долго занимался этим, пытаясь выяснить это самостоятельно, но я могуКажется, что я не прогрессирую, и это сводит меня с ума ... Любой способ, которым вы, ребята, могли бы помочь, будет оценен, даже если это всего лишь толчок в правильном направлении!
Кстати, моя функция карты должна быть выброшена:
- количество штатов: nb
- общая численность населения: сумма
- численность населения наиболее населенного штата: max
avg, STD и дисперсия через Fфункция inalize.
Я только изо всех сил пытаюсь найти способ рассчитать количество состояний, остальное я могу управлять!
Также я хотел бы сказать, что, выполняя задание mapReduceЧтобы решить эту проблему, мне удалось это сделать, но, в то же время, выполняя все остальное, что у меня просят, мне как-то не удается найти значение, которое я ищу ...