exponenta event banner

matlab.io.datastore. FileSet

Набор файлов для сбора файлов в хранилище данных

Описание

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

Создание

Описание

пример

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

fs = matlab.io.datastore.FileSet(location,Name,Value) указывает расширение файла, включать ли вложенные папки или задавать свойства объекта. Можно указать несколько пар имя-значение. Заключите имена в кавычки.

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

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

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

Обычно для рабочего процесса 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.

Пример: fs = matlab.io.datastore.FileSet(location,'IncludeSubfolders',true)

Флаг включения вложенной папки, указанный как числовой или логический 1 (true) или 0 (false). Определить true для включения всех файлов и подпапок в каждую папку или false для включения только файлов в каждую папку.

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

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

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

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

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

Свойства

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

Альтернативные корневые пути файловой системы, указанные как строковый массив или массив ячеек. Использовать '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

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

Количество файлов, прочитанных из FileSet , указанный как числовой скаляр.

Пример: fs.NumFilesRead

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

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

Информация о файлах в FileSet объект, возвращенный как FileInfo объект со следующими свойствами:

  • Filename - Имя файла в FileSet объект. Имя содержит полный путь к файлу.

  • FileSize - Размер файла в байтах.

Для получения сведений об определенном файле укажите индекс файла. Например, fs.FileInfo(2) возвращает имя и размер второго файла. При звонке fs.FileInfo без указания индекса возвращает информацию для всех файлов.

Пример: fs.FileInfo(2)

Функции объекта

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

Примеры

свернуть все

Создайте набор файлов и запросите информацию для определенных файлов в наборе файлов.

Создание набора файлов fs для коллекции файлов.

folder = {'accidents.mat','airlineResults.mat','census.mat','earth.mat'}
folder = 1x4 cell
  Columns 1 through 3

    {'accidents.mat'}    {'airlineResults...'}    {'census.mat'}

  Column 4

    {'earth.mat'}

fs = matlab.io.datastore.FileSet(folder)
fs = 
  FileSet with properties:

                    NumFiles: 4
                NumFilesRead: 0
                    FileInfo: Show FileInfo for all 4 files
    AlternateFileSystemRoots: {}

Получение информации для определенных файлов с помощью nextfile или путем запроса FileInfo и указание индекса. Получение информации для последовательных файлов с помощью nextfile. Например, получите информацию для первых двух файлов в наборе.

file1 = nextfile(fs)
file1 = 
  1x1 FileInfo
                                       Filename                                        FileSize
    _______________________________________________________________________________    ________

    "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/accidents.mat"      7343  

file2 = nextfile(fs)
file2 = 
  1x1 FileInfo
                                          Filename                                           FileSize 
    ____________________________________________________________________________________    __________

    "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/airlineResults.mat"    1.5042e+05

Запрос файлаInfo для получения информации о последнем файле в наборе.

lastfile = fs.FileInfo(4)
lastfile = 
  1x1 FileInfo
                                     Filename                                      FileSize
    ___________________________________________________________________________    ________

    "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/earth.mat"     32522  

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