Метод программирования для анализа наборов данных, которые не умещаются в памяти
outds = mapreduce(ds,mapfun,reducefun)
outds = mapreduce(ds,mapfun,reducefun,mr)
outds = mapreduce(___,Name,Value)
применяет функцию карты outds
= mapreduce(ds
,mapfun
,reducefun
)mapfun
, чтобы ввести datastore ds
, и затем передает значения, сопоставленные с каждым уникальным ключом, чтобы уменьшать функциональный reducefun
. Выходной datastore является объектом KeyValueDatastore
, который указывает на файлы .mat
в текущей папке.
опционально задает параметры конфигурации во время выполнения для outds
= mapreduce(ds
,mapfun
,reducefun
,mr
)mapreduce
. Вход mr
является результатом вызова функции mapreducer
. Как правило, этот аргумент используется с Parallel Computing Toolbox™, MATLAB® Parallel Server™ или MATLAB Compiler™. Для получения дополнительной информации смотрите, Убыстряются и Развертывают MapReduce Используя Другие продукты.
задает дополнительные опции с одним или несколькими аргументами пары outds
= mapreduce(___,Name,Value
)Name,Value
с помощью любого из предыдущих синтаксисов. Например, можно задать 'OutputFolder'
, сопровождаемый вектором символов, задающим путь к выходной папке.
Отладка ваших алгоритмов mapreduce
, чтобы исследовать, как пары "ключ-значение" перемещаются через различные фазы, всегда полезна. Чтобы исследовать перемещение данных, установите точки останова в своих map и reduce функциях. Точки останова останавливают выполнение mapreduce
, позволяя вам исследовать текущий статус следующих переменных, как KeyValueStore
или ValueIterator
. Для получения дополнительной информации см. Алгоритмы MapReduce Отладки.
Некоторые рекомендации оптимизировать производительность mapreduce
на любой платформе:
Минимизируйте количество вызовов функции карты. Самый легкий подход должен увеличить значение свойства ReadSize
входного datastore. Результат состоит в том, что mapreduce
передает большие фрагменты данных к функции карты, и datastore истощает с меньшим количеством чтений.
Уменьшите сумму промежуточных данных, отправленных между map и reduce функциями. Один подход должен использовать unique
в функции карты, чтобы объединить подобные ключи. Смотрите Вычисляют, Подразумевают под Группой Используя MapReduce для примера этого метода.