partition

Описание

пример

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 возражает из ваших данных.

Количество разделов в виде положительного целого числа.

Если вы задаете много разделов, который не является числовым фактором количества файлов в datastore, partition поместит каждое из остающихся наблюдений в существующих разделах, начиная с первого раздела.

Количество существующих разделов, которые содержат дополнительное наблюдение, равно остатку, полученному при делении количества файлов в datastore количеством разделов. Например, если ваш объект datastore содержит 23 файла, которые вы хотите разделить в 3 части, первые два раздела что partition создает будет содержать 8 файлов, и последний раздел будет содержать 7 файлов.

Пример 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