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- 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'}

Типы данных: cell | string

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

Типы данных: cell | string

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

Альтернативные пути к корню файловой системы, заданные как разделенная запятой пара, состоящая из 'AlternateFileSystemRoots' и вектор строки или массив ячеек. Используйте 'AlternateFileSystemRoots' когда вы создаете datastore на локальной машине, но должны получить доступ и обработать данные на другой машине (возможно различной операционной системы). Кроме того, когда обработка данных с помощью Parallel Computing Toolbox™ и MATLAB® Parallel 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"]

Типы данных: string | cell

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

hasdataОпределите, доступны ли данные для чтения
numpartitionsКоличество разделов datastore
partitionРазделите datastore
previewПодмножество данных в datastore
readСчитайте данные в datastore
readallСчитывайте все данные в datastore
resetСброс Datastore к начальному состоянию
transformПреобразуйте datastore
combineОбъедините данные от нескольких datastores

Примеры

свернуть все

Создайте 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]

Ограничения

  • KeyValueDatastore не поддерживает файлы последовательности, записанные в R2013b. Перепишите файлы последовательности с помощью версии MATLAB между R2014a и R2018a.

Введенный в R2014b