Skip to content

Latest commit

 

History

History
106 lines (96 loc) · 1.99 KB

mstefanowicz.md

File metadata and controls

106 lines (96 loc) · 1.99 KB

Zadanie 3 mapreduce

Na potrzeby tego zadania wygenerowalem na stronie http://www.json-generator.com/ przykadowa liste uczniów w szkole podstawowej.

        "id": 0,
        "name": "Vincent Ramos",
        "plec": "male",
        "numerdzien": 27,
        "rok": 5,
        "klasa": "A"
    

Wyswietlenie liczby uczniuw w klasach A, B, C na pierwszym roku.

var mapFunction1 = function() { emit( this.klasa, this.rok) ; };
var reduceFunction1 = function(key, values) {
    var licznik = 0;
    for(i in values) {
        if(values[i] > 0 && values[i] < 2) {
            licznik++;
        }
    }
    return licznik;
};
db.szkola.mapReduce(
                     mapFunction1,
                     reduceFunction1,
                     { out: "print" }
                   )
                   

Wynik wywietlilem poleceniem

db.print.find()

Wynik:

 
{"_id" : "A", "value" : 218}
{"_id" : "B", "value" : 215}
{"_id" : "C", "value" : 232}    

Wyswietlenie liczby chlopców i dziewczynek w szkole

var functionmap2 = function() {
  emit(this.plec, 1);
};
var functionreduce1 = function(key,value) {
  var count = 0;
  for(i = 0; i < value.length; i++) {
    count += value[i];
  }
  return count;
};
db.szkola.mapReduce(
  functionmap2,
  functionreduce1,
  { out : "plec" }
);

Wynik:

{"_id" : "female", "value" : 2034}
{"_id" : "male", "value" : 1966}

Liczba chlopców i dziewczynek na 1 roku.

var mapFunction3 = function() { emit( this.plec, this.rok) ; };
var reduceFunction3 = function(key, values) {
    var licznik = 0;
    for(i in values) {
        if(values[i] > 0 && values[i] < 2) {
            licznik++;
        }
    }
    return licznik;
};
db.szkola.mapReduce(
                     mapFunction3,
                     reduceFunction3,
                     {out: "print" }
                     )

Wynik:

{"_id" : "female", "value" : 322}
{"_id" : "male", "value" : 343}