private void Map(string input) { var mapResult = new MapResult(); using (var reader = new StringReader(input)) { string line; while ((line = reader.ReadLine()) != null) { if (!String.IsNullOrWhiteSpace(line)) { var language = line.Split(new [] { '|' }).Last().Trim(); mapResult.Counts.Add(new LanguageCount(language)); } } } Console.WriteLine("Mapper [{0}/{1}]: {2}", Self.Path.Name, Thread.CurrentThread.ManagedThreadId, mapResult); // simulate some runtime... Thread.Sleep(100); Sender.Tell(mapResult); }
private void Reduce(MapResult mapResult) { var reduceResult = new ReduceResult(); foreach (var count in mapResult.Counts) { if (reduceResult.Result.ContainsKey(count.Language)) { reduceResult.Result[count.Language] += count.Count; } else { reduceResult.Result[count.Language] = count.Count; } } Console.WriteLine("Reducer [{0}/{1}]: {2}", Self.Path.Name, Thread.CurrentThread.ManagedThreadId, reduceResult); // simulate some runtime... Thread.Sleep(100); Sender.Tell(reduceResult); }