KeyValueDatastore

Datastore для данных пары "ключ-значение" для использования с mapreduce

Описание

Объекты KeyValueDatastore сопоставлены с файлами, содержащими данные пары "ключ-значение", которые являются выходными параметрами или входными параметрами к mapreduce. Используйте свойства KeyValueDatastore задать, как вы хотите получить доступ к данным. Используйте запись через точку, чтобы просмотреть или изменить конкретное свойство объекта KeyValueDatastore:

ds = datastore('mapredout.mat');
ds.ReadSize = 20;

Также можно задать значение свойств KeyValueDatastore с помощью аргументов в виде пар "имя-значение", когда вы создаете datastore с помощью функции datastore:

ds = datastore('mapredout.mat','ReadSize',20);

Создание

Создайте объекты KeyValueDatastore с помощью функции datastore.

Свойства

развернуть все

Файлы включали в datastore, заданный как n-by-1 массив ячеек из символьных векторов или массив строк, где каждый вектор символа или строка являются полным путем к файлу. Это файлы, заданные аргументом location к функции datastore. Аргумент location содержит полные пути к файлам в локальной файловой системе, сетевой файловой системе или поддерживаемом удаленном местоположении, таким как Amazon S3™, Устройство хранения данных Windows Azure® Blob и HDFS™. Для получения дополнительной информации смотрите работу с Удаленными данными.

Файлами должны быть или MAT-файлы или файлы Последовательности, сгенерированные функцией mapreduce.

Пример: C: \dir\data\file1.mat'; 'C:\dir\data\file2.mat'}

Пример: {'s3://bucketname/path_to_files/your_file01.mat'; 's3://bucketname/path_to_files/your_file02.mat'}

Типы данных: ячейка | строка

Тип файла, заданный или как 'mat' для MAT-файлов или как 'seq' для файлов последовательности. По умолчанию вывод mapreduce, запускающегося против Hadoop®, является datastore, содержащим файлы последовательности. По умолчанию вывод всех других операций mapreduce является datastore, содержащим MAT-файлы.

Типы данных: ячейка | строка

Максимальное количество пар "ключ-значение", чтобы читать в вызове read или функций preview, заданных как положительное целое число.

Альтернативные пути к корню файловой системы, заданные как пара, разделенная запятой, состоящая из 'AlternateFileSystemRoots' и вектора строки или массива ячеек. Используйте 'AlternateFileSystemRoots', когда вы создадите datastore на локальной машине, но должны будете получить доступ и обработать данные на другой машине (возможно различной операционной системы). Кроме того, при обрабатывании данных с помощью Параллельных вычислений Toolbox™ и MATLAB® Distributed Computing Server™ и данные сохранены на локальных машинах с копией доступных данных на облаке другой платформы или кластерных машинах, необходимо использовать 'AlternateFileSystemRoots', чтобы сопоставить корневые пути.

  • Чтобы сопоставить набор корневых путей, которые эквивалентны друг другу, задайте 'AlternateFileSystemRoots' как вектор строки. Например,

    ["Z:\datasets","/mynetwork/datasets"]

  • Чтобы сопоставить несколько наборов корневых путей, которые эквивалентны для datastore, задайте 'AlternateFileSystemRoots' как массив ячеек, содержащий несколько строк, где каждая строка представляет набор эквивалентных корневых путей. Задайте каждую строку в массиве ячеек или как вектор строки или как массив ячеек из символьных векторов. Например:

    • Задайте 'AlternateFileSystemRoots' как массив ячеек векторов строки.

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • Также задайте 'AlternateFileSystemRoots' как массив ячеек массива ячеек из символьных векторов.

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

Значение 'AlternateFileSystemRoots' должно удовлетворить эти условия:

  • Содержит одну или несколько строк, где каждая строка задает набор эквивалентных корневых путей.

  • Каждая строка задает несколько корневых путей, и каждый корневой путь должен содержать по крайней мере два символа.

  • Корневые пути уникальны и не являются подпапками друг друга.

  • Содержит по крайней мере одну корневую запись пути, которая указывает на местоположение файлов.

Для получения дополнительной информации смотрите Настроенный Datastore для Обработки на Различных Машинах или Кластерах.

Пример: Z: \datasets"",/mynetwork/datasets"]

Типы данных: представьте в виде строки | ячейка

Функции объекта

hasdataОпределите, доступны ли Данные в Чтение
numpartitionsКоличество разделов datastore
разделРазделите datastore
предварительный просмотрПодмножество данных в datastore
чтениеСчитайте данные в datastore
readallСчитывайте все данные в datastore
сбросСброс Datastore к начальному состоянию

Примеры

свернуть все

Создайте datastore из файла примера, mapredout.mat, который является выходным файлом функции mapreduce.

ds = datastore('mapredout.mat')
ds = 

  KeyValueDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\demos\mapredout.mat'
              }
    ReadSize: 1 key-value pairs
    FileType: 'mat'

Установите свойство ReadSize на 8 так, чтобы каждый вызов читать чтения в большинстве пар "ключ-значение" 8.

ds.ReadSize = 8
ds = 

  KeyValueDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\demos\mapredout.mat'
              }
    ReadSize: 8 key-value pairs
    FileType: 'mat'

Считайте 8 пар "ключ-значение" во время с помощью функции read в цикле while. Цикл выполняется, пока больше нет доступных данных, чтобы читать, и hasdata(ds) возвращает false.

while hasdata(ds)
    T = read(ds);
end

Покажите последний набор чтения пар "ключ-значение".

T
T = 

    Key     Value 
    ____    ______

    'OO'    [3090]
    'TZ'    [ 216]
    'XE'    [2357]
    '9E'    [ 521]
    'YV'    [ 849]

Введенный в R2014b

Была ли эта тема полезной?