datastore

Создайте datastore для больших наборов данных

Описание

ds = datastore(location) создает datastore из набора данных, заданного location. Datastore является репозиторием для наборов данных, которые являются слишком большими, чтобы помещаться в памяти. После создания dsможно считать и обрабатывать данные.

пример

ds = datastore(location,Name,Value) задает дополнительные параметры для ds использование одного или нескольких аргументов пары "имя-значение". Для примера можно создать datastore для файлов изображений путем определения 'Type','image'.

Примеры

свернуть все

Создайте datastore, связанную с файлом образца airlinesmall.csv. Этот файл содержит данные авиакомпаний за период с 1987 по 2008 год.

Для управления импортом недостающих данных в числовых столбцах используйте 'TreatAsMissing' и 'MissingValue' Аргументы пары "имя-значение". Замените каждый образец 'NA' с 0 в импортированных данных путем определения значения 'TreatAsMissing' как 'NA' и значение 'MissingValue' как 0.

ds = datastore('airlinesmall.csv','TreatAsMissing','NA',...
               'MissingValue',0)
ds = 
  TabularTextDatastore with properties:

                      Files: {
                             ' .../devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/airlinesmall.csv'
                             }
                    Folders: {
                             '/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos'
                             }
               FileEncoding: 'UTF-8'
   AlternateFileSystemRoots: {}
         VariableNamingRule: 'modify'
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
             DatetimeLocale: en_US

  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
                 OutputType: 'table'
                   RowTimes: []

  Write-specific Properties:
     SupportedOutputFormats: ["txt"    "csv"    "xlsx"    "xls"    "parquet"    "parq"]
        DefaultOutputFormat: "txt"

datastore создает TabularTextDatastore.

Создайте datastore, содержащее все .tif файлы в пути MATLAB ® и его подпапках.

ds = datastore(fullfile(matlabroot, 'toolbox', 'matlab'),...
'IncludeSubfolders', true,'FileExtensions', '.tif','Type', 'image')
ds = 

  ImageDatastore with properties:

       Files: {
              ' ...\matlab\toolbox\matlab\demos\example.tif';
              ' ...\matlab\toolbox\matlab\imagesci\corn.tif'
              }
    ReadSize: 1
      Labels: {}
     ReadFcn: @readDatastoreImage

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

свернуть все

Файлы или папки, включенные в datastore, задаются в виде пути или DsFileSet объект.

  • path - Задайте путь как вектор символов, массив ячеек из векторов символов, строковый скаляр или строковые массивы, содержащий расположение локальных или удаленных файлов или папок.

    • Локальные файлы или папки - Задайте location как локальный путь к файлам или папкам. Если файлов нет в текущей папке, то локальный путь должен задавать полные или относительные пути. Файлы в подпапках указанной папки не включаются автоматически в datastore. При указании локального пути можно использовать символ подстановки (*). Этот символ указывает, что datastore включает все соответствующие файлы или все файлы в соответствующих папках.

    • Удаленные файлы или папки - Задайте location чтобы быть полными путями к файлам или папкам в качестве единого указателя ресурса (URL) формы hdfs:///path_to_file. Для получения дополнительной информации см. раздел Работа с удаленными данными.

  • DsFileSet объект - Вы также можете задать location как DsFileSet объект. Для получения дополнительной информации смотрите matlab.io.datastore.DsFileSet.

Когда location представляет папку, datastore включает только поддерживаемые форматы файлов и игнорирует любой другой формат. Чтобы задать пользовательский список расширений файлов, которые будут включены в ваш datastore, смотрите FileExtensions свойство.

Для KeyValueDatastore, файлы должны быть MAT-файлами или файлами Sequence, сгенерированными mapreduce функция. MAT-файлы должны быть в локальной файловой системе или в сетевой файловой системе. Файлы последовательности могут быть в локальной, сетевой или HDFS™ файловой системе. Для DatabaseDatastoreАргумент местоположения не должен быть файлами. Для получения дополнительной информации смотрите DatabaseDatastore (Database Toolbox).

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

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

Пример: {'C:\dir\data\file1.xls','C:\dir\data\file2.xlsx'}

Пример: 'C:\dir\data\*.mat'

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

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

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

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

Тип datastore, заданный как разделенная разделенными запятой парами, состоящая из 'Type' и одно из следующих:

Значение 'Type'Описание
'tabulartext'Текстовые файлы, содержащие табличные данные. Кодировка данных должна быть ASCII или UTF-8.
'image'Файлы изображений в таком формате, как JPEG или PNG. Приемлемые файлы включают imformats форматы.
'spreadsheet'Файлы электронной таблицы, содержащие один или несколько листов.
'keyvalue'Данные пары "ключ-значение", содержащиеся в MAT-файлах или файлах Sequence с данными, сгенерированными mapreduce.
'file'Пользовательские файлы формата, которые требуют указанной функции read для чтения данных. Для получения дополнительной информации смотрите FileDatastore.
'tall'MAT-файлы или файлы последовательности, произведенные write функция tall тип данных. Для получения дополнительной информации см., TallDatastore.
'parquet'Файлы Parquet, содержащие ориентированные на столбцы данные. Для получения дополнительной информации см., ParquetDatastore.
'database'Данные хранятся в базе данных. Требуется Database Toolbox™. Требует спецификации дополнительного входного параметра при использовании type параметр. Для получения дополнительной информации смотрите DatabaseDatastore (Database Toolbox).
  • Если существует несколько типов, поддерживающих формат файлов, используйте 'Type' аргумент для задания типа datastore.

  • Если вы не задаете значение для 'Type', затем datastore автоматически определяет подходящий тип datastore, который будет создан на основе расширений файлов.

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

Включите подпапки в папку, заданную как разделенная разделенными запятой парами, состоящая из 'IncludeSubfolders' и true (1) или false (0). Задайте true включать все файлы и подпапки в каждую папку или false для включения только файлов в каждую папку.

Когда вы не задаете 'IncludeSubfolders', затем значение по умолчанию false.

The 'IncludeSubfolders' пара "имя-значение" действительна только при создании следующих объектов:

  • TabularTextDatastore

  • ImageDatastore

  • SpreadsheetDatastore

  • FileDatastore

  • KeyValueDatastore

  • ParquetDatastore

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

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

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

Если 'FileExtensions' не задан, тогда datastore автоматически включает все поддерживаемые расширения файлов в зависимости от типа datastore. Если требуется включить неподдерживаемые внутренние номера, задайте каждый внутренний номер, который требуется включить отдельно.

  • Для TabularTextDatastore объекты, поддерживаемые расширения включают .txt, .csv, .dat, .dlm, .asc, .text, и без расширения.

  • Для ImageDatastore объекты, поддерживаемые расширения включают все imformats расширения.

  • Для SpreadsheetDatastore объекты, поддерживаемые расширения включают .xls, .xlsx, .xlsm, .xltx, и .xltm.

  • Для TallDatastore объекты, поддерживаемые расширения включают .mat и .seq.

  • Для ParquetDatastore объекты, поддерживаемые расширения включают .parquet и .parq.

The 'FileExtensions' пара "имя-значение" действительна только при создании следующих объектов:

  • TabularTextDatastore

  • ImageDatastore

  • SpreadsheetDatastore

  • FileDatastore

  • KeyValueDatastore

  • ParquetDatastore

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

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

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

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

Выход данных текстовых переменных, заданный как разделенная разделенными запятой парами, состоящая из 'TextType' и любой из них 'char' или 'string'. Если выходная таблица из read, readall, или preview функции содержат текстовые переменные, затем 'TextType' задает тип данных этих переменных для TabularTextDatastore и SpreadsheetDatastore только объекты. Если 'TextType' является 'char', затем выводится массив ячеек из векторов символов. Если 'TextType' является 'string', затем выход имеет тип string.

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

Тип для импортированных данных даты и времени, заданный как разделенная разделенными запятой парами, состоящая из 'DatetimeType' и одно из следующих значений: 'datetime' или 'text'. The 'DatetimeType' аргумент применяется только при создании TabularTextDatastore объект.

ЗначениеТип для импортированных данных даты и времени
'datetime'

MATLAB- datetime тип данных

Для получения дополнительной информации см. datetime.

'text'

Если 'DatetimeType' задается как 'text', затем тип импортированных данных даты и времени зависит от значения, заданного в 'TextType' параметр:

  • Если 'TextType' является 'char', затем datastore возвращает даты как массив ячеек из векторов символов.

  • Если 'TextType' является 'string', затем datastore возвращает даты как массив строк.

Пример: 'DatetimeType','datetime'

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

Выход данных данных длительности из текстовых файлов, заданный как разделенная разделенными запятой парами, состоящая из 'DurationType' и любой из них 'duration' или 'text'.

ЗначениеТип для импортированных данных длительности
'duration'

MATLAB- duration тип данных

Для получения дополнительной информации см. duration.

'text'

Если 'DurationType' задается как 'text', затем тип для импортированных данных о длительности зависит от значения, заданного в 'TextType' параметр:

  • Если 'TextType' является 'char', затем функция импорта возвращает данные о длительности как массив ячеек из векторов символов.

  • Если 'TextType' является 'string', затем функция импорта возвращает данные о длительности как массив строк.

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

Флаг для сохранения имен переменных, заданный как разделенная разделенными запятой парами, состоящая из VariableNamingRule и любой из них 'modify' или 'preserve'.

  • 'modify' - Преобразуйте недопустимые имена переменных (как определено isvarname function) для действительных идентификаторов MATLAB.

  • 'preserve' - Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают пространства и символы, отличные от ASCII.

Начиная с R2019b, имена переменных и имена строк могут включать любые символы, включая пространства и символы, отличные от ASCII. Кроме того, они могут начинаться с любых символов, а не только букв. Переменная и имена строк не должны быть допустимыми идентификаторами MATLAB (как определяется isvarname функция). Чтобы сохранить эти имена переменных и имена строк, задайте значение VariableNamingRule на 'preserve'.

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

В дополнение к этим парам "имя-значение" можно также задать любое из свойств следующих объектов как пары "имя-значение", кроме Files свойство:

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

свернуть все

Datastore для набора данных, возвращенной как один из следующих объектов: TabularTextDatastore, ImageDatastore, SpreadsheetDatastore, KeyValueDatastore, FileDatastore, TallDatastore, ParquetDatastore, или DatabaseDatastore. Тип datastore зависит от типа файлов или location аргумент. Для получения дополнительной информации щелкните имя datastore в следующей таблице:

Напечатать Выход
Текстовые файлыTabularTextDatastore
Файлы изображенийImageDatastore
Файлы электронной таблицыSpreadsheetDatastore
MAT-файлы или файлы Sequence, произведенные mapreduceKeyValueDatastore
Пользовательские файлы форматаFileDatastore
MAT-файлы или файлы последовательности, произведенные write функция tall тип данных. TallDatastore
Файлы ParquetParquetDatastore
База данныхDatabaseDatastore (Тулбокс базы данных)

Для каждого из этих типов datastore Files свойство является массивом ячеек из векторов символов. Каждый вектор символов является абсолютным путем к файлу, разрешенному location аргумент.

Введенный в R2014b