spreadsheetDatastore

Datastore для файлов электронной таблицы

Описание

Используйте объект SpreadsheetDatastore управлять большим количеством файлов электронной таблицы, где набор не обязательно умещается в памяти. Можно создать объект SpreadsheetDatastore с помощью функции spreadsheetDatastore, задать ее свойства, и затем импортировать функции объекта использования данных.

Создание

Синтаксис

ssds = spreadsheetDatastore(location)
ssds = spreadsheetDatastore(location,Name,Value)

Описание

пример

ssds = spreadsheetDatastore(location) создает datastore электронной таблицы из набора данных, заданных location.

ssds = spreadsheetDatastore(location,Name,Value) задает дополнительные параметры и свойства для ssds с помощью одного или нескольких аргументов пары "имя-значение". Например, spreadsheetDatastore(location,'FileExtensions',{'.xlsx','.xls'}) задает который файлы включать в datastore в зависимости от расширений файла.

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

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

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

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

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

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

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

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

Функция spreadsheetDatastore поддерживает эти расширения: .xls, .xlsx, .xlsm, .xltx и .xltm.

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

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

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

Пример: 's3://bucketname/path_to_files/*.xls'

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: ssds = spreadsheetDatastore('C:\dir\spreadsheetdata','FileExtensions',{'.xls','.xlsm'})

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

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

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

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

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

  • Если вы не задаете 'FileExtensions', то spreadsheetDatastore автоматически включает все файлы с .xls, .xlsx, .xlsm, .xltx и расширениями .xltm в заданном пути.

  • Если вы хотите включать электронные таблицы с нестандартными расширениями файла в SpreadsheetDatastore, то задайте те расширения явным образом.

  • Если вы хотите создать SpreadsheetDatastore для файлов без каких-либо расширений, то задайте 'FileExtensions' как пустой символьный вектор, ''.

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

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

Пример: 'FileExtensions',{'.xlsx','.xlsm'}

Типы данных: 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' задает тип данных тех переменных.

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

  • Если 'TextType' является 'string', то вывод имеет, вводят string.

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

В дополнение к этим парам "имя-значение" также можно задать любое из свойств на этой странице как пары "имя-значение". За исключением свойства Files.

Свойства

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

Свойства SpreadsheetDatastore описывают формат файлов в объекте datastore и управляют, как данные считаны из datastore. Можно задать значение аргументов пары "имя-значение" использования свойств SpreadsheetDatastore, когда вы создаете объект datastore. За исключением свойства Files. Чтобы просмотреть или изменить свойство после создания объекта, используйте запись через точку.

File Properties

Файлы включали в datastore, разрешенный как массив ячеек из символьных векторов или массив строк, где каждый вектор символов или строка являются полным путем к файлу. Аргумент location в spreadsheetDatastore и функциях datastore задает эти файлы.

Первый файл, заданный в массиве ячеек, определяет имена переменных и данные о формате для всех файлов в datastore.

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

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

Количество строк, чтобы пропустить в начале каждого листа при чтении, заданный как положительное целое число. Когда вы также задаете свойство Range, NumHeaderLines является количеством строк, чтобы пропустить в начале заданного блока данных.

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

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

Пример: {'sheet1','sheet7'}

Пример: [3 5 7]

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

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

Пример: 'B1:T7'

Пример: 'A:C'

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

Индикатор для чтения первой строки первого файла в datastore как имена переменных, заданные или как true (1) или как false (0).

  • Если true, то первая строка незаголовка первого файла определяет имена переменных для данных.

  • Если false, то первая строка незаголовка первого файла содержит первую строку данных. Имена переменных по умолчанию присвоены как Var1, Var2, и так далее.

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

Имена переменных в datastore, заданном как вектор символов, массив ячеек из символьных векторов, представляют в виде строки скаляр или массив строк. Задайте имена переменных в порядке, в котором они появляются в файлах. Если вы не задаете имена переменных, datastore обнаруживает их от первой строки незаголовка в первом файле. Можно задать VariableNames с вектором символов или представить скаляр в виде строки, однако datastore преобразовывает и хранит значение свойства к массиву ячеек из символьных векторов. При изменении свойства VariableNames количество новых имен переменных должно совпадать с количеством исходных имен переменных.

Если ReadVariableNames является false, то значения по умолчанию VariableNames к {'Var1','Var2', ...}.

Пример: {'Time','Date','Quantity'}

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

Типы переменных, заданные как 'double', 'char', 'string', 'categorical' или 'datetime', который указывает на тип каждой переменной при чтении данных.

Список тип переменных соответствует переменным в VariableNames. Типы double, char и datetime могут быть автоматически обнаружены от данных. Можно задать VariableTypes как вектор символов или представить скаляр в виде строки, однако spreadsheetDatastore автоматически преобразовывает его в массив ячеек из символьных векторов или массив строк.

Пример: {'char','categorical'}

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

Свойства для предварительного просмотра, читайте, readall Таблица

Переменные, чтобы читать из файла, заданного как вектор символов, массив ячеек из символьных векторов, представляют в виде строки скаляр или массив строк. Каждый вектор символов или строка содержат имя одной переменной. Можно задать имена переменных в любом порядке. Можно задать SelectedVariableNames с вектором символов или представить скаляр в виде строки, однако spreadsheetDatastore автоматически преобразовывает его в массив ячеек из символьных векторов или массив строк.

Пример: {'Var3','Var7','Var4'}

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

Типы выбранной переменной, заданные как 'double', 'char', 'string', 'categorical' или 'datetime', который указывает на тип каждой выбранной переменной при чтении данных. Список тип переменных соответствует переменным в SelectedVariableNames. Типы double, char и datetime могут быть автоматически обнаружены от данных. Можно задать SelectedVariableTypes как вектор символов или представить скаляр в виде строки, однако это автоматически преобразовано в массив ячеек из символьных векторов или массив строк.

Пример: {'double','datetime'}

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

Объем данных, чтобы читать в вызове функции read, заданной как 'file' или 'sheet', или как положительный целочисленный скаляр.

  • Если ReadSize является 'file', то каждый вызов read считывает все данные один файл за один раз.

  • Если ReadSize является 'sheet', то каждый вызов read считывает все данные один лист за один раз.

  • Если ReadSize является положительным целым числом, то каждый вызов read читает строки, заданные ReadSize или меньше, если это достигает конца данных.

Когда вы изменяете ReadSize от целочисленного скаляра до 'file' или 'sheet', или с другой стороны, сброс datastore с помощью функции reset.

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

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

hasdataОпределите, доступны ли данные для чтения
numpartitionsКоличество разделов datastore
partitionРазделите datastore
previewПодмножество данных в datastore
readСчитайте данные в datastore
readallСчитывайте все данные в datastore
resetСброс Datastore к начальному состоянию
sheetnamesЗапросите имена листа от datastore
transformПреобразуйте datastore
combineОбъедините данные от нескольких datastores

Примеры

свернуть все

ssds = datastore('airlinesmall_subset.xlsx')
ssds = 

  SpreadsheetDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall_subset.xlsx'
                             }
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableTypes: {'double', 'double', 'double' ... and 26 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
      SelectedVariableTypes: {'double', 'double', 'double' ... and 26 more}
                   ReadSize: 'file'

Создайте объект SpreadsheetDatastore, содержащий файл airlinesmall_subset.xlsx.

ssds = spreadsheetDatastore('airlinesmall_subset.xlsx')
ssds = 

  SpreadsheetDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall_subset.xlsx'
                             }
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableTypes: {'double', 'double', 'double' ... and 26 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
      SelectedVariableTypes: {'double', 'double', 'double' ... and 26 more}
                   ReadSize: 'file'

Отобразите имена листа для файла. Файл содержит один лист в год.

sheetnames(ssds,1)
ans = 

  Columns 1 through 7

    '1996'    '1997'    '1998'    '1999'    '2000'    '2001'    '2002'

  Columns 8 through 13

    '2003'    '2004'    '2005'    '2006'    '2007'    '2008'

Задайте переменную FlightNum во втором листе как данные интереса и предварительно просмотрите первые восемь строк.

ssds.Sheets = 2;
ssds.SelectedVariableNames = 'FlightNum';
preview(ssds)
ans = 

    FlightNum
    _________

    1014     
    1201     
     702     
    1184     
    1310     
    1759     
    1242     
    1558     

Только для чтения первые три строки переменных DepTime и ArrTime в первом листе.

ssds.ReadSize = 3;
ssds.Sheets = 1;
ssds.SelectedVariableNames = {'DepTime','ArrTime'};
read(ssds)
ans = 

    DepTime    ArrTime
    _______    _______

    2117       2305   
    1252       1511   
    1441       1708   

Считайте все листы четыре, пять, и шесть.

ssds.Sheets = 4:6;
readall(ssds);

Альтернативы

Также можно создать объект SpreadsheetDatastore с помощью функции datastore. Например, ds = datastore(location,'Type','spreadsheet') создает datastore из набора файлов, заданных location.

Введенный в R2016a