exponenta event banner

разделение

Разделение хранилища данных

Описание

пример

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

пример

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

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

Примеры

свернуть все

Создание хранилища данных для большой коллекции файлов. Для этого примера используйте десять копий файла образца airlinesmall.csv. Для обработки отсутствующих полей в табличных данных укажите пары имя-значение TreatAsMissing и MissingValue.

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

Разбейте хранилище данных на три части и верните первый раздел. partition функция возвращает приблизительно первую треть данных из хранилища данных 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 свойство хранилища данных содержит список файлов, включенных в хранилище данных. Проверьте количество файлов в Files свойство хранилища данных ds и хранилище данных с разделами subds. Хранилище данных ds содержит десять файлов и раздел subds содержит первые четыре файла.

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

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

ds = datastore('mapredout.mat');

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

n = numpartitions(ds);

Разбиение хранилища данных на разделы по умолчанию и возврат хранилища данных, соответствующего первому разделу.

subds = partition(ds,n,1);

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

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

Создайте хранилище данных, содержащее три файла изображений.

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

Разбиение хранилища данных по файлам и возврат детали, соответствующей второму файлу.

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

  ImageDatastore with properties:

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

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

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

ds = datastore('mapredout.mat');

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

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 для создания объекта хранилища данных на основе данных.

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

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

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

Пример: 3

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

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

Пример: 1

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

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

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

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

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

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

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

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

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

свернуть все

Хранилище выходных данных. Хранилище выходных данных имеет тот же тип, что и хранилище входных данных. ds.

См. также

|

Темы

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