Devrait la carte () et réduire () clés de retour / paires de valeurs de même type?

StackOverflow https://stackoverflow.com/questions/1859420

  •  13-09-2019
  •  | 
  •  

Question

Lors de l'écriture d'un travail d'MapReduce (en particulier hadoop le cas échéant), il faut définir une map() et une fonction de reduce(), les deux produisant une séquence de paires clé / valeur. Les types de données de la clé et la valeur est libre d'être définies par l'application.

Dans l'exemple canonique de comptage de mots, les deux fonctions de type donné paires (string, int) avec la clé étant un mot et la valeur d'un nombre d'occurrences. Ici - ainsi que dans tous les autres exemples que je l'ai vu - les types de clés en sortie et la valeur sont cohérentes entre les deux fonctions

.

le type de la paire clé / valeur doit / devrait produits par map() et reduce() être la même dans toute application de MapReduce? Si oui, pourquoi?

Était-ce utile?

La solution

Non. Il est évident que, bien sûr, les types de paires de sortie pour carte et les paires d'entrée de réduire doivent être identiques, puisque l'on est transmis dans l'autre.

Il est tout à fait possible, cependant, que vous pourriez avoir une réduction tâche que la production d'un autre type que les paires de cartes qui sont entrés - par exemple, si la tâche de carte compté les mots dans un document, mais la réduction tâche a calculé un mot moyen la fréquence. Dans ce cas, la carte serait émettant des entiers mais réduire seraient émettre des nombres à virgule flottante.

Autres conseils

Carte et réduire les sorties peuvent être différentes. Mais vous devez dire à l'application qu'ils sont. Voici comment:

Les méthodes setOutputKeyClass () et setOutuptValueClass () contrôlent les types de sortie de la carte et la réduisent les fonctions, qui sont souvent les mêmes.

Dans le cas où ils sont différents, vous pouvez définir la clé de sortie de carte / type valeurs par setMapOutputKeyClass () et SetMapOutputValue respectivement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top