раздел

Синтаксис

subds = partition(ds,n,index)
subds = partition(ds,'Files',index)
subds = partition(ds,'Files',filename)

Описание

пример

subds = partition(ds,n,index) datastore разделов ds в количество частей, заданных n и, возвращает раздел, соответствующий индексу index.

пример

subds = partition(ds,'Files',index) делит datastore файлами и возвращает раздел, соответствующий файлу индекса index в свойстве Files.

subds = partition(ds,'Files',filename) делит datastore файлами и возвращает раздел, соответствующий файлу, заданному filename.

Примеры

свернуть все

Создайте datastore для большого количества файлов. В данном примере используйте десять копий файла примера airlinesmall.csv. Чтобы обработать недостающие поля в табличных данных, задайте пары "имя-значение" TreatAsMissing и MissingValue.

files = repmat({'airlinesmall.csv'},1,10);
ds = tabularTextDatastore(files,...
                 'TreatAsMissing','NA','MissingValue',0);

Разделите datastore в три части и возвратите первый раздел. Функция partition возвращает приблизительно первую треть данных из datastore ds.

subds = partition(ds,3,1)
subds = 
  TabularTextDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall.csv';
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall.csv';
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall.csv'
                              ... and 1 more
                             }
               FileEncoding: 'UTF-8'
   AlternateFileSystemRoots: {}
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}

  Text Format Properties:
             NumHeaderLines: 0
                  Delimiter: ','
               RowDelimiter: '\r\n'
             TreatAsMissing: 'NA'
               MissingValue: 0

  Advanced Text Format Properties:
            TextscanFormats: {'%f', '%f', '%f' ... and 26 more}
                   TextType: 'char'
         ExponentCharacters: 'eEdD'
               CommentStyle: ''
                 Whitespace: ' \b\t'
    MultipleDelimitersAsOne: false

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
            SelectedFormats: {'%f', '%f', '%f' ... and 26 more}
                   ReadSize: 20000 rows

Свойство Files datastore содержит список файлов, включенных в datastore. Проверяйте количество файлов в свойстве Files datastore ds и разделенный datastore subds. Datastore ds содержит десять файлов и раздел subds, содержит первые четыре файла.

length(ds.Files)
ans = 10
length(subds.Files)
ans = 4

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

ds = datastore('mapredout.mat');

Получите количество по умолчанию разделов для ds.

n = numpartitions(ds);

Разделите datastore в количество по умолчанию разделов и возвратите datastore, соответствующий первому разделу.

subds = partition(ds,n,1);

Считайте данные в subds.

while hasdata(subds)
	data = read(subds);
end

Создайте datastore, который содержит три файлов изображений.

ds = imageDatastore({'street1.jpg','peppers.png','corn.tif'})
ds = 

  ImageDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\demos\street1.jpg';
              ' ...\matlab\toolbox\matlab\imagesci\peppers.png';
              ' ...\matlab\toolbox\matlab\imagesci\corn.tif'
              }
    ReadSize: 1
      Labels: {}
     ReadFcn: @readDatastoreImage

Разделите datastore файлами и возвратите часть, соответствующую второму файлу.

subds = partition(ds,'Files',2)
subds = 

  ImageDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\imagesci\peppers.png'
              }
    ReadSize: 1
      Labels: {}
     ReadFcn: @readDatastoreImage

subds содержит один файл.

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

ds = datastore('mapredout.mat');

Разделите datastore в три части на трех рабочих в параллельном пуле.

numWorkers = 3;
p = parpool('local',numWorkers);
n = numpartitions(ds,p);

parfor ii=1:n
    subds = partition(ds,n,ii);
    while hasdata(subds)
        data = read(subds);
    end
end

Входные параметры

свернуть все

Введите datastore. Можно использовать функцию datastore, чтобы создать объект datastore из данных.

Количество разделов, заданных как положительное целое число.

Пример 3

Типы данных: double

Индексируйте, заданный как положительное целое число.

Пример 1

Типы данных: double

Имя файла, заданное как вектор символов или скаляр строки.

Значение filename должно совпадать точно с именем файла, содержавшимся в свойстве Files datastore. Чтобы гарантировать, что имена файлов соответствуют точно, задайте filename с помощью ds.Files{N}, где N является индексом файла в свойстве Files. Например, ds.Files{3} задает третий файл в datastore ds.

Пример: ds.Files{3}

Пример: 'file1.csv'

Пример: '../dir/data/file1.csv'

Пример: 'hdfs://myserver:7867/data/file1.txt'

Типы данных: char

Выходные аргументы

свернуть все

Выведите datastore. Выходной datastore имеет тот же тип как входной datastore ds.

Смотрите также

|

Темы

Представленный в R2015a