matlab.io.datastore.BlockedFileSet

Установленный на сблокированный файл для набора блоков в файле

Описание

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

Создание

Описание

bs = matlab.io.datastore.BlockedFileSet(location) создает BlockedFileSet объект для набора блоков в файлах на основе заданного местоположения.

пример

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

Входные параметры

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

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

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

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

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

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

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

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

Включение подпапки отмечает в виде числового или логического 1 TRUE) или 0 ложь). Задайте true включать все файлы и подпапки в каждой папке или false включать только файлы в каждой папке.

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

Свойства

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

Размер блока в байтах, которые будут использоваться, чтобы разделить информацию о файле в виде одного из этих значений:

  • 'file' — Используйте размер следующего файла в наборе.

  • числовой скаляр — заданное значение Использования в байтах.

Пример: 'BlockSize',2000

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

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

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

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

    • Задайте 'AlternateFileSystemRoots' как массив ячеек строковых массивов.

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

    • В качестве альтернативы задайте 'AlternateFileSystemRoots' как массив ячеек массива ячеек из символьных векторов.

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

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

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

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

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

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

Для получения дополнительной информации смотрите Настроенный Datastore для Обработки на Различных Машинах или Кластерах.

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

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

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

Количество блоков в установленном на сблокированный файл объекте в виде числового скаляра.

Пример: bs.NumBlocks

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

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

Количество блоков считано из BlockedFileSet объект в виде числового скаляра.

Пример: bs.NumBlocksRead

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

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

Информация о блоках в BlockedFileSet объект, возвращенный как BlockInfo объект с этими свойствами:

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

  • FileSize — Размер файла в количестве байтов.

  • Offset — Запуск смещения в файле, который будет считан.

  • BlockSize — Размер блока в количестве байтов.

Для получения информации об определенном блоке задайте индекс блока. Например, bs.BlockInfo(2) возвращает информацию для второго блока. Если вы вызываете bs.BlockInfo не задавая индекс, это возвращает информацию для всех блоков.

Пример: bs.BlockInfo(2)

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

hasPreviousBlockОпределите, если установлено на сблокированный файл имеет предыдущий блок
previousblock Информация о предыдущем блоке в установленном на сблокированный файл
hasNextBlockОпределите, если установлено на сблокированный файл имеет другой блок
nextblock Информация о следующем блоке в установленном на сблокированный файл
progress Определите, сколько блоков или файлов было считано
maxpartitions Максимальное количество разделов
partition Раздел установленный на файл объект
subsetСоздайте подмножество datastore или установленный на файл
reset Сбросьте установленный на файл объект

Примеры

свернуть все

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

Создайте установленный на сблокированный файл bs для набора файлов и задают размер блока.

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'}

bs = matlab.io.datastore.BlockedFileSet(folder,'BlockSize',2000)
bs = 
  BlockedFileSet with properties:

                   NumBlocks: 98
               NumBlocksRead: 0
                   BlockSize: 2000
                   BlockInfo: Show BlockInfo for all 98 blocks
    AlternateFileSystemRoots: {}

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

blk1 = nextblock(bs)
blk1 = 
  1x1 BlockInfo
                                       Filename                                        FileSize    Offset    BlockSize
    _______________________________________________________________________________    ________    ______    _________

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

blk2 = nextblock(bs)
blk2 = 
  1x1 BlockInfo
                                       Filename                                        FileSize    Offset    BlockSize
    _______________________________________________________________________________    ________    ______    _________

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

Запросите BlockInfo свойство получить информацию о последнем блоке в наборе.

lastblk = bs.BlockInfo(98)
lastblk = 
  1x1 BlockInfo
                                     Filename                                      FileSize    Offset    BlockSize
    ___________________________________________________________________________    ________    ______    _________

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

Смотрите также

Введенный в R2020a