Mif18 2015 Mapreduce
Mif18 2015 Mapreduce
Mif18 2015 Mapreduce
TD Map/Reduce en MongoDB
3. SELECT *
FROM R
INTERSECT
SELECT X as A , Y as B
FROM S
4. SELECT *
FROM R
UNION
SELECT X as A , Y as B
FROM S
On donne les dfinitions inductives de red() et de map(g) sur des listes non-vides :
red()[x ] = x
red()(xs ++ ys) = (red()(xs)) (red()(ys))
map(g)[x ] = [g(x )]
map(g)(xs ++ ys) = map(g)(xs) ++ map(g)(ys)
1. En utilisant le mme formalisme, donner les types des fonctions (++ ), map et red. Vrifier que
la dfinition de mapreduce(g)() est correctement type et que son type est [(K1 V1 )]
[(K2 V2 )].
2. En utilisant uniquement des dfinitions fonctionnelles, donner les dfinitions de g et pour
que mapreduce(g)() calcule :
le nombre de valeurs associes chaque clef ;
le nombre doccurrence de chaque valeur ;
le nombre total de valeurs ;
le nombre total de valeurs diffrentes ;
3. Montrer que la loi doit tre associative, on utilisera pour cela la dfinition de red() et
lassociativit de +
+.
4. partir de la preuve prcdente pour les listes, donner largument pour prouver que doit
tre commutatif dans le cas des multi-ensembles et idempotent dans le cas des ensembles.
5. Montrer que si g(x y ) = g(x ) g(y ) alors g red() = red() map(g) par induction
sur les listes.
Rfrences
[1] R. Lmmel. Googles mapreduce programming model revisited. Science of Computer Pro-
gramming, 70(1) :1 30, 2008.
[2] J. Lin and C. Dyer. Data-Intensive Text Processing with MapReduce. Synthesis Lectures on Hu-
man Language Technologies. Morgan & Claypool Publishers, 2010. http://lintool.github.
io/MapReduceAlgorithms/.
[3] A. Rajaraman and J. D. Ullman. Mining of massive datasets. Cambridge University Press,
Cambridge, 2012.