exponenta event banner

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

Создание хранилища данных для больших коллекций данных

Описание

ds = datastore(location) создает хранилище данных из коллекции данных, указанной в location. Хранилище данных - это хранилище для наборов данных, слишком больших для размещения в памяти. После создания ds, можно считывать и обрабатывать данные.

пример

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

Примеры

свернуть все

Создание хранилища данных, связанного с файлом образца 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.

Создание хранилища данных, содержащего все .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

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

свернуть все

Файлы или папки, включенные в хранилище данных, указанные как путь или DsFileSet объект.

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

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

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

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

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

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

Пример: '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 объект.

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

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

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

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

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

Если не указано 'IncludeSubfolders', тогда значением по умолчанию является false.

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

  • TabularTextDatastore

  • ImageDatastore

  • SpreadsheetDatastore

  • FileDatastore

  • KeyValueDatastore

  • ParquetDatastore

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

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

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

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

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

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

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

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

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

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

  • TabularTextDatastore

  • ImageDatastore

  • SpreadsheetDatastore

  • FileDatastore

  • KeyValueDatastore

  • ParquetDatastore

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

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

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

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

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

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

Тип импортированных данных даты и времени, указанный как разделенная запятыми пара, состоящая из 'DatetimeType' и одно из этих значений: 'datetime' или 'text'. '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 к допустимым идентификаторам MATLAB.

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

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

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

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

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

свернуть все

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

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

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

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