c# خريطة وخفض في




mapreduce (4)

إذا كنت تحاول كتابة نسختك الخاصة من Google فذلك قد يضمن ذلك .. !!!

على الرغم من ذلك ، إذا كنت تعاني من مشكلة يمكن أن تتحلل في العديد من المشاكل الأصغر ، فسينجح حل Map-Reduce. يحتوي مستند Google على MapReduce على عدد من الأمثلة الجيدة ، بما في ذلك كيفية معالجة الآلاف من صفحات الويب ، عد الكلمات في المستند إلخ.

ما هي السيناريوهات التي تضمن استخدام خوارزمية " خريطة وخفض


هل هناك تنفيذ .NET من هذه الخوارزمية؟


فئات المشكلات التي تتناسب تمامًا مع حل نمط mapreduce هي مشكلات التجميع. من استخراج البيانات من مجموعة بيانات. في C # ، يمكن للمرء الاستفادة من LINQ لبرنامج في هذا النمط.

من المقالة التالية: http://codecube.net/2009/02/mapreduce-in-c-using-linq/

تعمل طريقة GroupBy كخريطة ، بينما تقوم طريقة Select بمهمة تقليل النتائج الوسيطة إلى القائمة النهائية للنتائج.

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

بالنسبة للجزء الموزع ، يمكنك التحقق من DryadLINQ: http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx



معادلات Linq للخريطة وخفضها: إذا كنت محظوظًا بما يكفي لأن لديك linq فلا تحتاج إلى كتابة الخريطة الخاصة بك وتقليل الوظائف. C # 3.5 و Linq لديها بالفعل ذلك وإن كان تحت أسماء مختلفة.

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/







mapreduce