parquetread

Чтение столбцовых данных из файла Parquet

Описание

пример

T = parquetread(filename) считывает файл Parquet, указанный в filename в таблицу или T расписания.

пример

T = parquetread(filename,Name,Value) считывает файл Parquet в таблицу или расписание с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

Примеры

свернуть все

Получите информацию о файле Parquet, считайте данные из файла в таблицу, а затем считайте подмножество переменных в таблицу.

Создайте ParquetInfo объект для файла outages.parquet.

info = parquetinfo('outages.parquet')
info = 
  ParquetInfo with properties:

               Filename: "/mathworks/devel/bat/BR2021ad/build/matlab/toolbox/matlab/demos/outages.parquet"
               FileSize: 44202
           NumRowGroups: 1
        RowGroupHeights: 1468
          VariableNames: [1x6 string]
          VariableTypes: [1x6 string]
    VariableCompression: [1x6 string]
       VariableEncoding: [1x6 string]
                Version: "2.0"

Считайте данные из файла в таблицу и отобразите первое 10 строки.

T = parquetread('outages.parquet');
T(1:10,:) 
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"

Выберите и импортируйте переменные Region, OutageTime, и Cause в таблицу и отобразить первую 10 строки.

SelVarNames = {'Region','OutageTime','Cause'};
T_subset = parquetread('outages.parquet','SelectedVariableNames',SelVarNames);
T_subset(1:10,:) 
ans=10×3 table
      Region            OutageTime               Cause      
    ___________    ____________________    _________________

    "SouthWest"    01-Feb-2002 12:18:00    "winter storm"   
    "SouthEast"    23-Jan-2003 00:49:00    "winter storm"   
    "SouthEast"    07-Feb-2003 21:15:00    "winter storm"   
    "West"         06-Apr-2004 05:44:00    "equipment fault"
    "MidWest"      16-Mar-2002 06:18:00    "severe storm"   
    "West"         18-Jun-2003 02:49:00    "attack"         
    "West"         20-Jun-2004 14:39:00    "equipment fault"
    "West"         06-Jun-2002 19:28:00    "equipment fault"
    "NorthEast"    16-Jul-2003 16:23:00    "fire"           
    "MidWest"      27-Sep-2004 11:09:00    "equipment fault"

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

Чтение данных из outages.parquet в расписание и отобразить первое 10 строки. Используйте вторую переменную OutageTime в данных как временном векторе для timetable.

TT = parquetread('outages.parquet','RowTimes','OutageTime');
TT(1:10,:)
ans=10×5 timetable
         OutageTime           Region        Loss     Customers       RestorationTime             Cause      
    ____________________    ___________    ______    __________    ____________________    _________________

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

Определите, является ли расписание регулярным и отсортированным. Регулярное расписание имеет одинаковый временной интервал между последовательными временами строк, и отсортированное расписание имеет временной вектор строка в порядке возрастания.

isregular(TT)
ans = logical
   0

issorted(TT)
ans = logical
   0

Отсортируйте расписание по времени его строки с помощью sortrows функция и отобразить первый 10 строки отсортированных данных.

TT = sortrows(TT);
TT(1:10,:)
ans=10×5 timetable
         OutageTime           Region        Loss     Customers       RestorationTime             Cause       
    ____________________    ___________    ______    __________    ____________________    __________________

    01-Feb-2002 12:18:00    "SouthWest"    458.98    1.8202e+06    07-Feb-2002 16:50:00    "winter storm"    
    05-Mar-2002 17:53:00    "MidWest"      96.563    2.8666e+05    10-Mar-2002 14:41:00    "wind"            
    16-Mar-2002 06:18:00    "MidWest"      186.44    2.1275e+05    18-Mar-2002 23:23:00    "severe storm"    
    26-Mar-2002 01:59:00    "MidWest"      388.04    5.6422e+05    28-Mar-2002 19:55:00    "winter storm"    
    20-Apr-2002 16:46:00    "MidWest"       23141           NaN                     NaT    "unknown"         
    08-May-2002 20:34:00    "SouthWest"    50.732         34481    08-May-2002 22:21:00    "thunder storm"   
    18-May-2002 11:04:00    "MidWest"      1389.1    1.3447e+05    21-May-2002 01:22:00    "unknown"         
    20-May-2002 10:57:00    "NorthEast"    9116.6    2.4983e+06    21-May-2002 15:22:00    "unknown"         
    27-May-2002 09:44:00    "SouthEast"    237.28    1.7101e+05    27-May-2002 16:19:00    "wind"            
    02-Jun-2002 16:11:00    "SouthEast"         0             0    05-Jun-2002 05:55:00    "energy emergency"

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

свернуть все

Имя файла Parquet в виде вектора символов или строкового скаляра. parquetread работает с файлами Parquet 1.0 или Parquet 2.0.

В зависимости от расположения файла, filename может принять одну из этих форм.

Местоположение

Форма

Текущая папка или папка на MATLAB® путь

Укажите имя файла в filename.

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

Файл в папке

Если файл находится не в текущей папке или в папке на пути MATLAB, задайте полное или относительное имя пути.

Пример: 'C:\myFolder\data.parquet'

Пример: 'myDir\myFile.ext'

URL-адрес Интернета

Если файл задан как однородный интернет-локатор ресурсов (URL), то filename должен содержать тип протокола 'http://' или 'https://' и заканчиваются '?raw=true'.

Пример: 'http://hostname/path_to_file/my_data.parquet?raw=true'

Удаленное местоположение

Если файл хранится в удаленном местоположении, то filename должен содержать полный путь к файлу, указанному в форме:

scheme_name://path_to_file/ my_file.ext

Исходя из удаленного местоположения, scheme_name может быть одним из значений в этой таблице.

Удаленное местоположениеscheme_name
Амазонки S3™s3
Windows Azure® Хранилище больших двоичных объектовwasb, wasbs
HDFS™hdfs

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

Пример: 's3://bucketname/path_to_file/data.parquet'

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

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

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

Пример: 'OutputType','table' импортирует данные в файл Parquet как таблицу.

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

  • 'auto' - Возвращает таблицу или расписание. parquetread определяет, должно ли выходу быть таблицей или расписанием, на основе других пар "имя-значение", которые вы задаете. Для примера, когда вы устанавливаете пары "имя-значение", связанные с расписанием, parquetread выводит, что выход является расписанием. Установка этих пар "имя-значение" указывает, что выход является расписанием: RowTimes, StartTime, SampleRate, или TimeStep.

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

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

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

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

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

  • SelectedVariableNames должен быть подмножеством имен переменных, содержащихся в файле Parquet. Чтобы получить имена всех переменных в файле, используйте VariableNames свойство ParquetInfo объект.

  • Если вы не задаете SelectedVariableNames Пара "имя-значение", parquetread считывает все переменные из файла.

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

Количество строк переменной, заданное как разделенная запятой пара, состоящее из 'RowTimes' и имя переменной или временной вектор.

  • Имя переменной должно быть вектором символов или строковым скаляром, содержащим имя любой переменной в входе таблице, которая содержит datetime или duration значения. Переменная, заданная как имя переменной, содержит метки времени строк. Остальные переменные входы таблицы становятся переменными расписания.

  • Временной вектор должен быть datetime вектор или duration вектор. Количество элементов временного вектора должно равняться количеству строк входа таблицы. Значения времени в временном векторе не должны быть уникальными, сортированными или регулярными. Все переменные входы таблицы становятся переменными расписания.

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

Время начала строки, заданное как разделенная разделенными запятой парами, состоящая из StartTime и скаляр datetime или скаляр длительности.

  • Если время начала является datetime, то время строки T являются значениями datetime.

  • Если время запуска является длительностью, то время строки T являются значениями длительности.

  • Если временной шаг является календарной длительностью, то начальное время должно быть значением datetime.

StartTime является параметром, связанным с расписанием. The parquetread функция использует StartTime наряду с SampleRate или TimeStep для определения временного вектора для выхода T.

Типы данных: datetime | duration

Частота дискретизации, заданная как разделенная разделенными запятой парами, состоящая из 'SampleRate' и положительный числовой скаляр. Частота дискретизации является количеством выборок в секунду (Гц) временного вектора выходного расписания T.

SampleRate является параметром, связанным с расписанием. The parquetread функция использует SampleRate наряду с другими параметрами timetable, чтобы задать временной вектор для выхода T.

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

Временной шаг временного вектора, заданный как разделенная разделенными запятой парами, состоящая из 'TimeStep' и скаляром длительности.

  • Если вы задаете временной шаг как календарную длительность (для примера, календарных месяцев), то вектор времени строки должен быть вектором datetime.

  • Если вы задаете временной шаг как длительность (для примера, секунд), то вектором времени строки может быть или datetime, или вектор длительности.

TimeStep является параметром, связанным с расписанием. The parquetread функция использует TimeStep наряду с другими параметрами timetable, чтобы задать временной вектор для выхода T.

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

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

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

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

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

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

свернуть все

Выход данных, возвращенный как таблица или расписание. Выходные выходы parquetread функция зависит от значения OutputType Пара "имя-значение". Для получения дополнительной информации смотрите описание пары "имя-значение" для OutputType.

Ограничения

В некоторых случаях parquetwrite создает файлы, которые не представляют исходный массив T точно. Если вы используете parquetread или datastore чтобы считать файлы, результат может иметь не тот формат или содержимое, что и исходная таблица. Для получения дополнительной информации смотрите Apache Parquet Data Type Отображений.

Введенный в R2019a