В этом примере показано, как создать 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
datastore | KeyValueDatastore | mapreduce | tall