Quels scénarios justifieraient l'utilisation de l' algorithme « Map and Reduce »?
Existe-t-il une implémentation .NET de cet algorithme?
Quels scénarios justifieraient l'utilisation de l' algorithme « Map and Reduce »?
Existe-t-il une implémentation .NET de cet algorithme?
Réponses:
Equivalents Linq de Map et Reduce: Si vous avez la chance d'avoir linq, vous n'avez pas besoin d'écrire votre propre carte et de réduire les fonctions. C # 3.5 et Linq l'ont déjà sous des noms différents.
La carte est
Select
:Réduire c'est
Aggregate
:Le filtre est
Where
:https://www.justinshield.com/2011/06/mapreduce-in-c/
la source
Reduce
au lieu deAggregate
... MS aime juste ennuyer les programmeursLes classes de problèmes qui conviennent bien pour une solution de style mapreduce sont des problèmes d'agrégation. D'extraction de données à partir 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/
Pour la partie distribuée, vous pouvez consulter DryadLINQ: http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx
la source
Puisque je ne peux pas oublier que LINQ appelle
Where
,Select
et auAggregate
lieu deFilter
,Map
etReduce
donc je créé quelques méthodes d'extension , vous pouvez utiliser:Voici les 3 méthodes (depuis https://github.com/cs-util-com/cscore/blob/master/CsCore/PlainNetClassLib/src/Plugins/CsCore/com/csutil/collections/IEnumerableExtensions.cs ):
Quelques détails supplémentaires sur https://github.com/cs-util-com/cscore#ienumerable-extensions :
la source