¿Qué escenarios justificarían el uso del algoritmo "Map and Reduce"?Mapa y Reducir en .NET
¿Hay una implementación .NET de este algoritmo?
¿Qué escenarios justificarían el uso del algoritmo "Map and Reduce"?Mapa y Reducir en .NET
¿Hay una implementación .NET de este algoritmo?
equivalentes de Linq Mapa y Reducir: Si tienes la suerte de tener LINQ, entonces no es necesario escribir su propio mapa y reducir funciones. C# 3.5 y Linq ya lo tienen aunque con diferentes nombres.
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);
La traducción es correcta pero omite un punto clave. El paso aleatorio en la reducción del mapa es crítico en map-reduce, pero no aparece en el nombre y no es necesario escribir ningún código. Solo depende de la clave que se extrae en el paso del mapa. Joel Martinez responde que, en mi opinión, es mejor. – user1583558
El enlace no funciona, el enlace correcto es: https://www.justinshield.com/2011/06/mapreduce-in-c/ –
Si estabas tratando de escribir tu propia versión de Google, ¡eso podría garantizarlo!
En serio, si tiene un problema que puede descomponerse en varios problemas más pequeños, entonces una solución Map-Reduce funcionaría. El documento de Google en MapReduce tiene un buen número de ejemplos, incluyendo la forma de procesar miles de páginas web, el recuento de palabras del documento, etc, etc
MapReduce enlace es roto @Sean. Aquí está el nuevo enlace http://research.google.com/archive/mapreduce.html – Vbp
@vbp - gracias, he actualizado la respuesta – Sean
Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcione el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la reseña] (/ review/low-quality-posts/18027646) – Gerard
Ver esta otra pregunta respecto map/reduce:
Gracias Ray, su enlace llevó a mucha información útil – Developer
Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la reseña] (/ crítica/mensajes de baja calidad/18026777) – nvoigt
Las clases de problemas que son adecuadas para una solución de estilo mapreduce son problemas de agregación. De extraer datos de un conjunto de datos. En C#, uno podría aprovechar LINQ para programar en este estilo.
Desde el siguiente artículo: http://codecube.net/2009/02/mapreduce-in-c-using-linq/
el método GroupBy está actuando como el mapa, mientras que el método Select hace el trabajo de la reducción de los resultados intermedios en la lista final de los resultados.
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);
Para la parte distribuida, se puede consultar DryadLINQ: http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx
posible duplicado de [lista de extensiones genéricas en C#] (http://stackoverflow.com/questions/40075/generic-list-extensions-in-c-sharp) – Satpal