exponenta event banner

matlab.io.datastore.DsFileSet класс

Пакет: matlab.io.datastore

Объект набора файлов для сбора файлов в хранилище данных

Описание

DsFileSet позволяет управлять итеративной обработкой больших коллекций файлов. Используйте DsFileSet объект вместе с DsFileReader для управления файлами из хранилища данных и их чтения.

Строительство

fs = matlab.io.datastore.DsFileSet(location) возвращает DsFileSet объект для коллекции файлов на основе указанного location.

fs = matlab.io.datastore.DsFileSet(location,Name,Value) задает дополнительные параметры для DsFileSet с использованием одного или нескольких аргументов пары имя-значение. Name также может быть именем свойства, и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

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

развернуть все

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

Обычно для рабочего процесса Hadoop ® при указанииlocation как структура, она должна содержать поля FileName, Offset, и Size. Это требование позволяет использовать location аргумент непосредственно с initializeDatastore способ matlab.io.datastore.HadoopLocationBased класс. Пример см. в разделе Добавление поддержки Hadoop.

При указании можно использовать подстановочный символ (*) location. Указание этого символа включает все соответствующие файлы или все файлы в соответствующих папках объекта набора файлов.

Если файлы недоступны локально, то полный путь к файлам или папкам должен быть унифицированным URL-адресом ресурса, например
hdfs://hostname:portnumber/path_to_file.

Типы данных: char | cell | string | struct

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'FileExtensions',{'.jpg','.tif'} включает все файлы с .jpg или .tif расширение в FileSet объект.

Расширения файлов, указанные как разделенная запятыми пара, состоящая из 'FileExtensions' и символьный вектор, массив ячеек символьных векторов или строку. Можно использовать пустые кавычки '' для представления файлов без расширений.

Если 'FileExtensions' не указан, то DsFileSet автоматически включает все расширения файлов.

Пример: 'FileExtensions','.jpg'

Пример: 'FileExtensions',{'.txt','.csv'}

Типы данных: char | cell | string

Флаг включения подпапки, заданный как разделенная запятыми пара, состоящая из 'IncludeSubfolders' и true или false. Определить true для включения всех файлов и подпапок в каждую папку или false для включения только файлов в каждую папку.

Пример: 'IncludeSubfolders',true

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

Альтернативные корневые пути файловой системы, указанные как разделенная запятыми пара, состоящая из 'AlternateFileSystemRoots' и строковый вектор или массив ячеек. Использовать 'AlternateFileSystemRoots' при создании хранилища данных на локальном компьютере, но при необходимости доступа и обработки данных на другом компьютере (возможно, в другой операционной системе). Кроме того, при обработке данных с помощью Parallel Computing Toolbox™ и MATLAB ® Parallel Server™ данные хранятся на локальных компьютерах с копией данных, доступных на различных облачных платформах или кластерных машинах, необходимо использовать'AlternateFileSystemRoots' для связывания корневых путей.

  • Чтобы связать набор корневых путей, эквивалентных друг другу, укажите 'AlternateFileSystemRoots' в виде строкового вектора. Например,

    ["Z:\datasets","/mynetwork/datasets"]

  • Чтобы связать несколько наборов корневых путей, эквивалентных хранилищу данных, укажите 'AlternateFileSystemRoots' как массив ячеек, содержащий несколько строк, где каждая строка представляет набор эквивалентных корневых путей. Укажите каждую строку в массиве ячеек в качестве строкового вектора или массива ячеек в виде символьных векторов. Например:

    • Определить 'AlternateFileSystemRoots' в виде массива ячеек строковых векторов.

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • Либо укажите 'AlternateFileSystemRoots' как массив ячеек массива ячеек символьных векторов.

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

Значение 'AlternateFileSystemRoots' должны удовлетворять следующим условиям:

  • Содержит одну или несколько строк, где каждая строка указывает набор эквивалентных корневых путей.

  • Каждая строка указывает несколько корневых путей, и каждый корневой путь должен содержать не менее двух символов.

  • Корневые пути уникальны и не являются подпапками друг друга.

  • Содержит по крайней мере одну запись корневого пути, указывающую на расположение файлов.

Дополнительные сведения см. в разделе Настройка хранилища данных для обработки на различных машинах или кластерах.

Пример: ["Z:\datasets","/mynetwork/datasets"]

Типы данных: string | cell

Свойства

развернуть все

Это свойство доступно только для чтения.

Количество файлов в объекте набора файлов, указанное как числовой скаляр.

Пример: fs.NumFiles

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

Это свойство доступно только для чтения.

Размер разделения, указанный как 'file' или числовой скаляр.

Значение, назначенное FileSplitSize определяет выходные данные nextfile способ.

  • Если FileSplitSize является 'file', то nextfile метод возвращает таблицу с FileName, FileSize, Offset, и SplitSize. Значение SplitSize устанавливается равным FileSize.

  • Если FileSplitSize является числовым скаляром n, то nextfile возврат метода FileName, FileSize, Offset, и SplitSize. Значение SplitSize устанавливается равным FileSplitSize. Эта информация используется для чтения n байт файла. Последующие вызовы nextfile метод возвращает информацию, чтобы помочь прочитать следующее n байт одного и того же файла до конца файла.

Пример: 'FileSplitSize',20

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

Методы

hasfile Определение наличия дополнительных файлов в объекте набора файлов
maxpartitions Максимальное количество разделов
nextfile Сведения о следующем файле или блоке файлов
partition Объект набора файлов секционирования
subsetСоздание подмножества хранилища данных или набора файлов
reset Сброс объекта набора файлов
resolve Информация обо всех файлах в объекте набора файлов

Примеры

свернуть все

Создайте объект набора файлов, получите информацию о файле за один раз или информацию для всех файлов в объекте набора файлов.

Создание объекта набора файлов для всех .mat файлы из demos папка.

folder = fullfile(matlabroot,'toolbox','matlab','demos');
fs = matlab.io.datastore.DsFileSet(folder,...
                 'IncludeSubfolders',true,...
                 'FileExtensions','.mat');

Получение информации для первого и второго файлов из объекта набора файлов.

fTable1 = nextfile(fs) ; % first file 
fTable2 = nextfile(fs) ; % second file

Получайте информацию обо всех файлах, получая информацию для одного файла за раз, и собирайте информацию в таблицу.

ft = cell(fs.NumFiles,1); % using cell for efficiency
i = 1;
reset(fs); % reset to the beginning of the fileset
while hasfile(fs)                 
    ft{i} = nextfile(fs);
    i = i + 1;
end
allFiles = vertcat(ft{:});

Также можно получить сведения обо всех файлах одновременно.

allfiles = resolve(fs);

Совет

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