Quels scénarios justifieraient l'utilisation de l'algorithme "Map and Reduce"?Mapper et réduire .NET
Existe-t-il une implémentation .NET de cet algorithme?
Quels scénarios justifieraient l'utilisation de l'algorithme "Map and Reduce"?Mapper et réduire .NET
Existe-t-il une implémentation .NET de cet algorithme?
équivalents de Linq Carte et Réduire: Si vous êtes assez chanceux d'avoir LINQ alors vous n'avez pas besoin d'écrire votre propre carte et réduisez les fonctions. C# 3.5 et Linq l'ont déjà sous des noms différents.
Map = Select | Enumerable.Range(1, 10).Select(x => x + 2);
Reduce = Aggregate | Enumerable.Range(1, 10).Aggregate(0, (acc, x) => acc + x);
Filter = Where | Enumerable.Range(1, 10).Where(x => x % 2 == 0);
La traduction est correcte mais il manque un point clé. L'étape de mélange aléatoire dans la carte est essentielle dans la réduction de la carte, mais n'apparaît pas dans le nom, il n'est pas nécessaire d'écrire un code pour cela. Il est uniquement piloté par la clé extraite à l'étape de la carte. Joel Martinez réponse souligne que, à mon avis, mieux. – user1583558
Lien ne fonctionne pas, le lien correct est: https://www.justinshield.com/2011/06/mapreduce-in-c/ –
Si vous essayiez d'écrire votre propre version de Google, alors cela pourrait le justifier .. !!! Mais sérieusement, si vous avez un problème que vous pouvez décomposer en plusieurs petits problèmes, alors une solution Map-Reduce fonctionnera. Le document Google sur MapReduce a un certain nombre de bons exemples, y compris la façon de traiter des milliers de pages web, compter les mots dans le document, etc etc
MapReduce Link cassé @Sean. Voici le nouveau lien http://research.google.com/archive/mapreduce.html – Vbp
@vbp - merci, j'ai mis à jour la réponse – Sean
Alors que ce lien peut répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [À revoir] (/ review/low-quality-posts/18027646) – Gerard
Voir cette autre question concernant la carte/Reduce:
Merci Ray, votre lien a conduit à beaucoup d'informations utiles – Developer
Alors que ce lien peut répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et fournir le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. - [À revoir] (/ review/low-quality-posts/18026777) – nvoigt
Les classes de problèmes qui conviennent bien à une solution de type mapreduce sont des problèmes d'agrégation. D'extraire des données d'un ensemble de données. En C#, on pourrait profiter de LINQ pour programmer dans ce style.
De l'article suivant: http://codecube.net/2009/02/mapreduce-in-c-using-linq/
la méthode GroupBy agit comme la carte, alors que la méthode Select fait le travail de réduire les résultats intermédiaires dans la liste finale des résultats.
var wordOccurrences = words
.GroupBy(w => w)
.Select(intermediate => new
{
Word = intermediate.Key,
Frequency = intermediate.Sum(w => 1)
})
.Where(w => w.Frequency > 10)
.OrderBy(w => w.Frequency);
Pour la partie distribuée, vous pouvez vérifier DryadLINQ: http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx
double possible de [Liste génériques Extensions en C#] (http://stackoverflow.com/questions/40075/generic-list-extensions-in-c-sharp) – Satpal