Maison >développement back-end >Tutoriel Python >Qu'est-ce que MapReduce ? Découvrez comment MapReduce fonctionne en trois minutes.

Qu'est-ce que MapReduce ? Découvrez comment MapReduce fonctionne en trois minutes.

Tomorin
Tomorinoriginal
2018-08-17 14:46:566393parcourir

Python a des fonctions map() et reduce() intégrées.

Si vous avez lu le célèbre article de Google "MapReduce : Simplified Data Processing on Large Clusters", vous pouvez à peu près comprendre le concept de map/reduce.

Regardons d’abord la carte. La fonction map() reçoit deux paramètres, l'un est une fonction et l'autre est un itérable. La carte applique tour à tour la fonction passée à chaque élément de la séquence et renvoie le résultat sous la forme d'un nouvel itérateur.

Par exemple, par exemple, nous avons une fonction f(x)=x2, et nous voulons appliquer cette fonction à une liste [1, 2, 3, 4, 5, 6, 7, 8, 9]. Vous pouvez utiliser map() pour l'implémenter comme suit :

Quest-ce que MapReduce ? Découvrez comment MapReduce fonctionne en trois minutes.

Maintenant, nous utilisons du code Python pour l'implémenter :

>>> def f(x):...     return x * x
...>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map() Le premier paramètre transmis est f, qui est l'objet fonction lui-même. Puisque le résultat r est un Iterator, et Iterator est une séquence paresseuse, nous utilisons la fonction list() pour la laisser calculer la séquence entière. Et renvoie une liste.

Vous pensez peut-être que vous n'avez pas besoin de la fonction map(), vous pouvez écrire une boucle et calculer le résultat :

L = []for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
    L.append(f(n))
print(L)

C'est en effet possible , mais, d'après ce qui précède, pouvez-vous comprendre en un coup d'œil "appliquer f(x) à chaque élément de la liste et générer une nouvelle liste en conséquence" du code de boucle ?

Ainsi, map(), en tant que fonction d'ordre élevé, fait abstraction des règles de fonctionnement. Par conséquent, nous pouvons non seulement calculer f(x)=x2 simple, mais également en calculer n'importe quel. Des fonctions complexes, par exemple, convertissent tous les nombres de cette liste en chaînes :

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn