Этот пример показывает, как создать datastore для файла Последовательности, содержащего данные в виде пар "ключ-значение". Затем можно считать и обработать данные один фрагмент за один раз. Файлами последовательности являются выходные параметры операций mapreduce
то использование Hadoop®.
Установите соответствующую переменную окружения на местоположение, где Hadoop установлен. В этом случае установите переменную окружения MATLAB_HADOOP_INSTALL
.
setenv('MATLAB_HADOOP_INSTALL','/mypath/hadoop-folder')
hadoop-folder
является папкой, где Hadoop установлен, и mypath
является путем к той папке.
Создайте datastore из файла примера, mapredout.seq
, с помощью функции datastore
. Файл примера содержит коды поставщика услуг авиакомпании представления уникальных ключей и соответствующие значения, которые представляют количество рейсов, выполненных тем поставщиком услуг.
ds = datastore('mapredout.seq')
ds = KeyValueDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\mapredout.seq' } ReadSize: 1 key-value pairs FileType: 'seq'
datastore
возвращает KeyValueDatastore
. Функция datastore
автоматически определяет соответствующий тип datastore, чтобы создать.
Установите свойство ReadSize
на шесть так, чтобы каждый вызов read
считал самое большее шесть пар "ключ-значение".
ds.ReadSize = 6;
Считайте подмножества данных от ds
с помощью функции read
в цикле while
. Для каждого подмножества данных вычислите сумму значений. Сохраните сумму для каждого подмножества в массиве под названием sums
. Цикл while
выполняется, пока hasdata(ds)
не возвращает false
.
sums = []; while hasdata(ds) T = read(ds); T.Value = cell2mat(T.Value); sums(end+1) = sum(T.Value); end
Просмотрите последнее подмножество чтения пар "ключ-значение".
T
T = Key Value ________ _____ 'WN' 15931 'XE' 2357 'YV' 849 'ML (1)' 69 'PA (1)' 318
Вычислите общее количество рейсов, выполненных всеми поставщиками услуг.
numflights = sum(sums)
numflights = 123523
KeyValueDatastore
| datastore
| mapReduce
| высокий