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
isPartitionableОпределите, partitionable ли datastore
isShuffleableОпределите, shuffleable ли 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]

Ограничения

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

Введенный в R2014b