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 функция. The location аргумент содержит полные пути к файлам в локальной файловой системе, сетевой файловой системе или поддерживаемом удаленном местоположении, таком как Amazon S3™, Windows Azure® Хранилище больших двоичных объектов и HDFS™. Для получения дополнительной информации см. раздел Работа с удаленными данными.

Файлы должны быть либо MAT-файлами, либо файлами Sequence, сгенерированными 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Объедините данные из нескольких хранилищ данных
isPartitionableОпределите, является ли datastore разделяемым
isShuffleableОпределите, является ли datastore shuffleable

Примеры

свернуть все

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

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

T
T = 

    Key     Value 
    ____    ______

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

Ограничения

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

Введенный в R2014b