Kịch bản nào sẽ đảm bảo việc sử dụng thuật toán "Map and Reduce"?Bản đồ và Giảm trong .NET
Có triển khai .NET cho thuật toán này không?
Kịch bản nào sẽ đảm bảo việc sử dụng thuật toán "Map and Reduce"?Bản đồ và Giảm trong .NET
Có triển khai .NET cho thuật toán này không?
LINQ tương đương của Map và Giảm: Nếu bạn đủ may mắn khi có LINQ thì bạn không cần phải viết các chức năng bản đồ và giảm của riêng bạn. C# 3.5 và Linq đã có nó mặc dù dưới tên gọi khác nhau.
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);
Bản dịch là chính xác nhưng nó bỏ sót một điểm chính. Các bước shuffle trong bản đồ giảm là rất quan trọng trong bản đồ-giảm nhưng không hiển thị trong tên một người không phải viết bất kỳ mã cho nó. Nó chỉ được điều khiển bởi Khóa được trích xuất trong bước bản đồ. Joel Martinez câu trả lời nổi bật rằng theo ý kiến của tôi tốt hơn. – user1583558
Liên kết không hoạt động, liên kết chính xác là: https://www.justinshield.com/2011/06/mapreduce-in-c/ –
Nếu bạn đang cố gắng viết phiên bản Google của riêng mình thì có thể đảm bảo nó .. !!!
Nghiêm túc, nếu bạn gặp sự cố mà bạn có thể phân hủy thành nhiều vấn đề nhỏ hơn thì giải pháp Map-Reduce sẽ hoạt động. Các tài liệu Google trên MapReduce có một số ví dụ điển hình, bao gồm cách xử lý hàng ngàn trang web, đếm số từ trong tài liệu vv vv
MapReduce Link là bị hỏng @Sean. Đây là liên kết mới http://research.google.com/archive/mapreduce.html – Vbp
@vbp - cảm ơn, tôi đã cập nhật câu trả lời – Sean
Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ review/low-quality-posts/18027646) – Gerard
Xem câu hỏi này khác liên quan đến bản đồ/giảm:
Cảm ơn Ray, liên kết của bạn đã dẫn đến nhiều thông tin hữu ích – Developer
Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên đưa các phần quan trọng của câu trả lời vào đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/chất lượng thấp-bài viết/18026777) – nvoigt
Các lớp của vấn đề rất thích hợp cho một giải pháp phong cách mapreduce là vấn đề của tập hợp. Trích xuất dữ liệu từ tập dữ liệu. Trong C#, người ta có thể tận dụng LINQ to program theo phong cách này.
Từ bài viết sau: http://codecube.net/2009/02/mapreduce-in-c-using-linq/
phương pháp groupby là hành động như bản đồ, trong khi Chọn phương pháp thực hiện công việc của việc giảm các kết quả trung gian vào danh sách cuối cùng của kết quả.
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);
Đối với phần phân phối, bạn có thể kiểm tra DryadLINQ: http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx
thể trùng lặp của [Danh sách Generic Extensions trong C#] (http://stackoverflow.com/questions/40075/generic-list-extensions-in-c-sharp) – Satpal