partition

Описание

пример

subds = partition(ds,n,index) partitions 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 на три части и верните первый раздел. The 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

The 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 creates будет содержать 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