parquetDatastore

Datastore для набора файлов Parquet

Описание

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

Создание

Описание

пример

pds = parquetDatastore(location) создает datastore pds от набора файлов Parquet, заданного location.

пример

pds = parquetDatastore(location,Name,Value) задает дополнительные параметры и свойства для pds использование одного или нескольких аргументов пары "имя-значение".

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

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

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

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

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

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

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

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

parquetDatastore функционируйте поддерживает .parquet fileFormat .

Пример: 'myfile.parquet'

Пример: '../dir/data/myfile.parquet'

Пример: {'C:\dir\data\myfile01.parquet','C:\dir\data\myfile02.parquet'}

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

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

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

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

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

  • Если вы не задаете 'FileExtensions', затем parquetDatastore автоматически включает все файлы с .parquet и .parq расширения в заданном пути.

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

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

Пример: 'FileExtensions',{'.parquet','.parq'}

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

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

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

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

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

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

Типы данных: логический | double

Выведите тип данных, заданный как разделенная запятой пара, состоящая из 'OutputType' и 'auto'Таблица, или 'timetable'.

  • 'auto' — Возвратите таблицу или расписание. parquetDatastore обнаруживает, если выход должен быть таблицей или расписанием на основе других пар "имя-значение", которые вы задаете. Когда вы задаете RowTimes пара "имя-значение", parquetDatastore выводит, что выход является расписанием.

  • 'table' — Возвратите таблицу. Для получения дополнительной информации о табличном типе данных смотрите table.

  • 'timetable' — Возвратите расписание. Для получения дополнительной информации о расписаниях смотрите timetable.

Значение OutputType выбирает тип данных, возвращенный в previewчтение, и readall функции.

Пример: 'OutputType','timetable'

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

Отметьте, чтобы сохранить имена переменных, заданные как разделенная запятой пара, состоящая из PreserveVariableNames и любой true, или false.

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

  • false — Преобразуйте недопустимые имена переменных (как определено isvarname функция) к допустимым идентификаторам MATLAB.

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

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

Свойства

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

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

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

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

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

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

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

  • 'rowgroup' — Каждый вызов read читает количество строк, заданных в группах строки файла Parquet. Чтобы получить количество строк в группах строки, смотрите RowGroupHeights свойство ParquetInfo объект.

  • 'file' — Каждый вызов read чтения все данные в одном файле.

  • положительное целое число — Каждый вызов read читает максимум ReadSize 'Строки' .

Когда вы изменяете ReadSize от положительного целого числа до 'file' или 'rowgroup', или наоборот, MATLAB сбрасывает datastore к непрочитанному состоянию, где никакие данные не были считаны из него.

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

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

Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена varible, содержащие пробелы и символы non-ASCII, устанавливают PreserveVariableNames параметр к true.

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

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

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

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

Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена varible, содержащие пробелы и символы non-ASCII, устанавливают PreserveVariableNames параметр к true.

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

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

Имя переменной времен строки в данных о Паркете, заданных как разделенная запятой пара, состоящая из 'RowTimes' и вектор символов или массив строк, содержащий имя переменной.

RowTimes связанный с расписанием параметр. Каждая строка расписания сопоставлена со временем, которое получено во временном векторе для расписания. Переменная задана в RowTimes, должен содержать datetime или duration вектор.

По умолчанию, parquetDatastore использует первый datetime или duration переменная как времена строки для расписания.

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

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

Примеры

свернуть все

Создайте ParquetDatastore объект, содержащий файл outages.parquet.

pds = parquetDatastore('outages.parquet')
pds = 
  ParquetDatastore with properties:

                       Files: {
                              ' .../devel/bat/BR2019bd/build/matlab/toolbox/matlab/demos/outages.parquet'
                              }
       PreserveVariableNames: false
               VariableNames: {1x6 cell}
       SelectedVariableNames: {1x6 cell}
                    ReadSize: 'rowgroup'
                  OutputType: 'table'
                    RowTimes: []
    AlternateFileSystemRoots: {}

Создайте datastore для демонстрационного файла Parquet, и затем считайте данные из файла с различным ReadSize значения.

Создайте datastore для airlinesmall.parquet, установите ReadSize к 10 строки, и затем читают из datastore. Значение ReadSize определяет, сколько строк данных читается из datastore с каждым вызовом read функция.

pds = parquetDatastore('outages.parquet','ReadSize',10);
read(pds)
ans=10×6 table
      Region            OutageTime          Loss     Customers       RestorationTime             Cause      
    ___________    ____________________    ______    __________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00         0             0    18-Jun-2003 10:54:00    "attack"         
    "West"         20-Jun-2004 14:39:00    231.29           NaN    20-Jun-2004 19:16:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    311.86           NaN    07-Jun-2002 00:51:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    239.93         49434    17-Jul-2003 01:12:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    286.72         66104    27-Sep-2004 16:37:00    "equipment fault"

Установите ReadSize значение свойства к 'file' и читайте из datastore. Каждый вызов read функция считывает все данные из datastore.

pds.ReadSize ='file'; 
data = read(pds)
data=1468×6 table
      Region            OutageTime          Loss     Customers       RestorationTime             Cause      
    ___________    ____________________    ______    __________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    530.14    2.1204e+05                     NaT    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00     289.4    1.4294e+05    17-Feb-2003 08:14:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    434.81    3.4037e+05    06-Apr-2004 06:10:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00         0             0    18-Jun-2003 10:54:00    "attack"         
    "West"         20-Jun-2004 14:39:00    231.29           NaN    20-Jun-2004 19:16:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    311.86           NaN    07-Jun-2002 00:51:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    239.93         49434    17-Jul-2003 01:12:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    286.72         66104    27-Sep-2004 16:37:00    "equipment fault"
    "SouthEast"    05-Sep-2004 17:48:00    73.387         36073    05-Sep-2004 20:46:00    "equipment fault"
    "West"         21-May-2004 21:45:00    159.99           NaN    22-May-2004 04:23:00    "equipment fault"
    "SouthEast"    01-Sep-2002 18:22:00    95.917         36759    01-Sep-2002 19:12:00    "severe storm"   
    "SouthEast"    27-Sep-2003 07:32:00       NaN    3.5517e+05    04-Oct-2003 07:02:00    "severe storm"   
    "West"         12-Nov-2003 06:12:00    254.09    9.2429e+05    17-Nov-2003 02:04:00    "winter storm"   
    "NorthEast"    18-Sep-2004 05:54:00         0             0                     NaT    "equipment fault"
      ⋮

Также можно установить значение ReadSize свойство к 'rowgroup'. Для получения дополнительной информации смотрите ReadSize свойство ParquetDatastore страница ссылки на объект.

Ограничения

Если вы используете parquetread или datastore чтобы считать файлы, затем результат не может иметь того же формата или содержимого как исходная таблица. Для получения дополнительной информации смотрите Отображения Типа данных Паркета Apache.

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

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

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

| | | |

Введенный в R2019a