Mapa i redukcja in.NET

Jakie scenariusze uzasadniałyby użycie algorytmu" Map and Reduce"?


czy istnieje implementacja tego algorytmu. NET?

Author: Developer, 2009-01-09

4 answers

Odpowiedniki Linq Map i Reduce: Jeśli masz szczęście, że masz linq, to nie musisz pisać własnej mapy i zmniejszać funkcji. C# 3.5 i Linq już go mają, choć pod różnymi nazwami.

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);

Https://www.justinshield.com/2011/06/mapreduce-in-c/

 185
Author: Tony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-06 18:09:50

Klasy problemu, które dobrze nadają się do rozwiązania w stylu mapreduce, to problemy agregacji. Wydobywania danych ze zbioru danych. W C# można wykorzystać LINQ do programowania w tym stylu.

Z następującego artykułu: http://codecube.net/2009/02/mapreduce-in-c-using-linq/

Metoda GroupBy działa jak mapa, podczas gdy metoda Select redukuje wyniki pośrednie do ostatecznej listy wyniki.

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);

Dla części dystrybuowanej, możesz sprawdzić DryadLINQ: http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx

 14
Author: Joel Martinez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 20:58:29

Zobacz inne pytanie dotyczące map/reduce:

Generic List Extensions in C #

 11
Author: Ray Vega,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:27

Jeśli próbowałeś napisać własną wersję Google to może to uzasadnić..!!!

Poważnie, jeśli masz problem, który możesz rozłożyć na kilka mniejszych problemów, wtedy rozwiązanie Map-Reduce będzie działać. Dokument Google na MapReduce ma wiele dobrych przykładów, w tym jak przetwarzać tysiące stron internetowych, liczyć słowa w dokumencie itp.

 0
Author: Sean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-10 22:01:46