Алгоритм получает на вход 3 аргумента, исходную коллекцию, Map функцию, Reduce функцию, и возвращает новую коллекцию данных.
Collection MapReduce(Collection source, Function map, Function reduce)
Алгоритм состоит из нескольких шагов. В качестве первого шага выполняется Map функция к каждому элементу исходной коллекции. Map вернет ноль либо создаст экземпляры Key/Value объектов.
ArrayOfKeyValue Map(object itemFromSourceCollection)
То есть, можно сказать что обязанность Map функции конвертировать элементы исходной коллекции в ноль или несколько экземпляров Key/Value объектов. Это продемонстрировано ниже на изображении:
Следующим шагом, алгоритм отсортирует все пары Key/Value и создаст новые экземпляры объектов, где все значения (value) будут сгруппированы по ключу.
Последним шагом выполнится функция Reduce для каждого сгруппированного экземпляра Key/Value объекта
ItemResult Reduce(KeyWithArrayOfValues item)
Функция Reduce вернет новый экземпляр объекта, который будет включен в результирующую коллекцию.
Взято тут

Немає коментарів:
Дописати коментар