exponenta event banner

parquetread

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

Описание

пример

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

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

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.

Пример: '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 является параметром, связанным с расписанием. parquetread функции использует StartTime вместе с SampleRate или TimeStep для определения вектора времени для вывода T.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

Ограничения

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

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