Чтение столбцовых данных из файла 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"
filename
- Имя файла ParquetИмя файла Parquet в виде вектора символов или строкового скаляра. parquetread
работает с файлами Parquet 1.0 или Parquet 2.0.
В зависимости от расположения файла, filename
может принять одну из этих форм.
Местоположение | Форма | ||||||||
---|---|---|---|---|---|---|---|---|---|
Текущая папка или папка на MATLAB® путь | Укажите имя файла в Пример:
'data.parquet' | ||||||||
Файл в папке | Если файл находится не в текущей папке или в папке на пути MATLAB, задайте полное или относительное имя пути. Пример:
Пример:
'myDir\myFile.ext' | ||||||||
URL-адрес Интернета | Если файл задан как однородный интернет-локатор ресурсов (URL), то Пример:
| ||||||||
Удаленное местоположение | Если файл хранится в удаленном местоположении, то
Исходя из удаленного местоположения,
Для получения дополнительной информации см. раздел Работа с удаленными данными. Пример:
|
Типы данных: char
| string
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'OutputType','table'
импортирует данные в файл Parquet как таблицу.'OutputType'
- Выход данных'auto'
(по умолчанию) | 'table'
| 'timetable'
Выходной тип данных, заданный как разделенная разделенными запятой парами, состоящая из 'OutputType'
и 'auto'
, 'table'
, или 'timetable'
.
'auto'
- Возвращает таблицу или расписание. parquetread
определяет, должно ли выходу быть таблицей или расписанием, на основе других пар "имя-значение", которые вы задаете. Для примера, когда вы устанавливаете пары "имя-значение", связанные с расписанием, parquetread
выводит, что выход является расписанием. Установка этих пар "имя-значение" указывает, что выход является расписанием: RowTimes
, StartTime
, SampleRate
, или TimeStep
.
'table'
- Верните таблицу. Для получения дополнительной информации о типе данных таблицы смотрите table
.
'timetable'
- Верните расписание. Для получения дополнительной информации о типе данных timetable смотрите timetable
.
Пример: 'OutputType','timetable'
Типы данных: char
| string
'SelectedVariableNames'
- Подмножество переменных для импортаПодмножество переменных для импорта, заданное как разделенная разделенными запятой парами, состоящая из 'SelectedVariableNames'
и вектор символов, строковый скаляр, массив ячеек из векторов символов или строковых массивов.
SelectedVariableNames
должен быть подмножеством имен переменных, содержащихся в файле Parquet. Чтобы получить имена всех переменных в файле, используйте VariableNames
свойство ParquetInfo
объект.
Если вы не задаете SelectedVariableNames
Пара "имя-значение", parquetread
считывает все переменные из файла.
Типы данных: char
| string
| cell
'RowTimes'
- Переменная времени строкиКоличество строк переменной, заданное как разделенная запятой пара, состоящее из 'RowTimes'
и имя переменной или временной вектор.
Имя переменной должно быть вектором символов или строковым скаляром, содержащим имя любой переменной в входе таблице, которая содержит datetime
или duration
значения. Переменная, заданная как имя переменной, содержит метки времени строк. Остальные переменные входы таблицы становятся переменными расписания.
Временной вектор должен быть datetime
вектор или duration
вектор. Количество элементов временного вектора должно равняться количеству строк входа таблицы. Значения времени в временном векторе не должны быть уникальными, сортированными или регулярными. Все переменные входы таблицы становятся переменными расписания.
Типы данных: char
| string
| datetime
| duration
'StartTime'
- Время запуска строкиВремя начала строки, заданное как разделенная разделенными запятой парами, состоящая из StartTime
и скаляр datetime или скаляр длительности.
Если время начала является datetime, то время строки T
являются значениями datetime.
Если время запуска является длительностью, то время строки T
являются значениями длительности.
Если временной шаг является календарной длительностью, то начальное время должно быть значением datetime.
StartTime
является параметром, связанным с расписанием. The parquetread
функция использует StartTime
наряду с SampleRate
или TimeStep
для определения временного вектора для выхода T
.
Типы данных: datetime
| duration
'SampleRate'
- Частота дискретизацииЧастота дискретизации, заданная как разделенная разделенными запятой парами, состоящая из 'SampleRate'
и положительный числовой скаляр. Частота дискретизации является количеством выборок в секунду (Гц) временного вектора выходного расписания T
.
SampleRate
является параметром, связанным с расписанием. The parquetread
функция использует SampleRate
наряду с другими параметрами timetable, чтобы задать временной вектор для выхода T
.
Типы данных: double
'TimeStep'
- Временной шаг временного вектораВременной шаг временного вектора, заданный как разделенная разделенными запятой парами, состоящая из 'TimeStep'
и скаляром длительности.
Если вы задаете временной шаг как календарную длительность (для примера, календарных месяцев), то вектор времени строки должен быть вектором datetime.
Если вы задаете временной шаг как длительность (для примера, секунд), то вектором времени строки может быть или datetime, или вектор длительности.
TimeStep
является параметром, связанным с расписанием. The parquetread
функция использует TimeStep
наряду с другими параметрами timetable, чтобы задать временной вектор для выхода T
.
'VariableNamingRule'
- Флаг для сохранения имен переменных'modify'
(по умолчанию) | 'preserve'
Флаг для сохранения имен переменных, заданный как разделенная разделенными запятой парами, состоящая из VariableNamingRule
и любой из них 'modify'
или 'preserve'
.
'modify'
- Преобразуйте недопустимые имена переменных (как определено isvarname
function) для действительных идентификаторов MATLAB.
'preserve'
- Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают пространства и символы, отличные от ASCII.
Начиная с R2019b, имена переменных и имена строк могут включать любые символы, включая пространства и символы, отличные от ASCII. Кроме того, они могут начинаться с любых символов, а не только букв. Переменная и имена строк не должны быть допустимыми идентификаторами MATLAB (как определяется isvarname
функция). Чтобы сохранить эти имена переменных и имена строк, задайте значение VariableNamingRule
на 'preserve'
.
Типы данных: char
| string
T
- Выходные данныеВыход данных, возвращенный как таблица или расписание. Выходные выходы parquetread
функция зависит от значения OutputType
Пара "имя-значение". Для получения дополнительной информации смотрите описание пары "имя-значение" для OutputType
.
В некоторых случаях parquetwrite
создает файлы, которые не представляют исходный массив T
точно. Если вы используете parquetread
или datastore
чтобы считать файлы, результат может иметь не тот формат или содержимое, что и исходная таблица. Для получения дополнительной информации смотрите Apache Parquet Data Type Отображений.
parquetDatastore
| parquetinfo
| parquetwrite
| table
| timetable
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.