parquetread
从Parquet文件读取柱状数据
描述
例子
将拼花文件读入表
获取关于Parquet文件的信息,将文件中的数据读入表,然后将变量的子集读入表。
创建一个ParquetInfo
对象。outages.parquet
.
信息= parquetinfo(“outages.parquet”)
文件名:"/mathworks/devel/bat/Bdoc22b/build/matlab/toolbox/matlab/demos/停机。parquet" FileSize: 44202 NumRowGroups: 1 RowGroupHeights: 1468 VariableNames: ["Region" "OutageTime" "Loss"…"VariableTypes: ["string" "datetime" "double"…VariableCompression: ["snappy" "snappy" "snappy"…VariableEncoding: ["plain" "plain" "plain" "plain" "plain" "plain"…[中文版本:"2.0"
将文件中的数据读入一个表并显示第一个表10
行。
镶木地板(“outages.parquet”);T (1:10,:)
ans =10×6表区域OutageTime Loss Customers RestorationTime Cause ___________ ____________________ ________________ ____________________ _________________“SouthWest”01-Feb-2002 12:18:00 1.8202e+06 07-Feb-2002 16:50:00“winter storm”“SouthEast”2003年1月23日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”2002年3月16日06:18:00 186.44 2.1275e+05 18- 2002年3月23日23:23:00“猛烈风暴”“西部”2003年6月18日02:49:00 00 18- 2003年6月23日14:39:00“袭击”“西部”2004年6月20日19:16:00“设备故障”“西部”06- 2002年6月19 28:00 311.86 NaN 07- 2002年6月00:51:00“设备故障”“东北”2003年7月16日16:23:00 239.93 49434 17- 2003年7月17日01:12:00“火灾”“中西部”2004年9月27日11:09:00 286.72 66104 27- 2004年9月27日16:37:00“设备故障”
选择并导入变量地区
,OutageTime
,导致
放入一个表并显示第一个10
行。
SelVarNames = {“地区”,“OutageTime”,“原因”};t_子集= parquetread(“outages.parquet”,“SelectedVariableNames”, SelVarNames);T_subset (1:10,:)
ans =10×3表区域OutageTime原因___________ ____________________ _________________“西南”01-02-02 12:18:00“冬季风暴”“东南”2003年1月23日00:49:00“冬季风暴”“东南”07-02-03 21:15:00“冬季风暴”“西部”06- 04月06日05:44:00“设备故障”“中西部”2002年3月16日06:18:00“严重风暴”“西部”2003年6月18日02:49:00“攻击”“西部”2004年6月20日14:39:00“设备故障”“西部”06- 06月19:28:00“设备故障”“东北”2003年7月16日16:23:00“火灾”“中西部”2004年9月27日11:09:00“设备故障”
将拼花文件读入时间表
将文件中的数据读入时间表
,然后利用时间表函数判断时间表是否规则有序。
读取数据outages.parquet
成一个时间表,并显示第一10
行。使用第二个变量OutageTime
以数据为时间矢量为时间表。
镶木地板(“outages.parquet”,“RowTimes”,“OutageTime”);TT (1:10,:)
ans =10×5时间表OutageTime区域损失客户恢复时间原因____________________ _________________ __________ ____________________ _________________ 01-Feb-2002 12:18:00“西南”458.98 1.8202e+06 07-Feb-2002 16:50:00“冬季风暴”2003年1月23日00:49:00“东南”530.14 2.1204e+05 02 -2003 21:15:00“东南”289.4 1.4294e+05 17-Feb-2003 08:14:00“冬季风暴”06- 04 -2004 05:44:00“西”434.81 3.4037e+05 06- 04 -2004 06:10:00“设备故障”2002年3月16日06:18:00“中西部”186.44 2.1275e+05 2002年3月18日23:23:00“严重风暴”2003年6月18日02:49:00“西部”00 2003年6月18日10:54:00“攻击”2004年6月20日14:39:00“西部”231.29 NaN 20- 2004年6月20日19:16:00“设备故障”06- 2002年6月19:28:00“西部”311.86 NaN 07- 2002年6月00:51:00“设备故障”2003年7月16日16:23:00“东北”239.93 49434 2003年7月17日01:12:00“火灾”2004年9月27日11:09:00“中西部”286.72 66104 2004年9月27日16:37:00“设备故障”
确定时间表是否有规律和有序。常规时间表在连续的行时间之间具有相同的时间间隔,而排序时间表的行时间向量为升序。
isregular (TT)
ans =逻辑0
issorted (TT)
ans =逻辑0
属性对时间表的行时间进行排序sortrows
函数并显示第一个10
已排序数据的行。
TT = sortrows(TT);TT (1:10,:)
ans =10×5时间表OutageTime区域损失客户恢复时间原因____________________ _________________ __________ ____________________ __________________ 01-Feb-2002 12:18:00“西南”458.98 1.8202e+06 07-Feb-2002 16:50:00“冬季风暴”05- 03 -2002 17:53:00“中西部”96.563 2.8666e+05 10- 03 -2002 14:41:00“风”16- 03 -2002 06:18:00“中西部”186.44 2.1275e+05 18- 03 -2002 23:23:00“严重风暴”26- 03 -2002 01:59:00“中西部”388.04 5.6422e+05 28- 03 -2002 19:55:00“冬季风暴”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"
使用行筛选器有条件地导入数据子集
通过使用行筛选器指定要导入的变量和行来导入数据子集。
类的子集outages.parquet
文件时,创建一个过滤器以只导入OutageTime
,地区
,导致
变量。然后,细化筛选器以只导入满足特定条件的值的行。
Rf = rowfilter([“OutageTime”“地区”“原因”]);Rf2 = (rf。OutageTime> datetime(“2013-02-01”)) & (rf。地区= =“东北”) & (rf。原因= =“暴风雪”);镶木地板(“outages.parquet”RowFilter = rf2 SelectedVariableNames = [“OutageTime”“地区”“原因”])
d =6×3表OutageTime区域原因____________________ ___________ ______________ 2013年2月13日01:44:00“东北”“冬季风暴”2013年12月25日11:24:00“东北”“冬季风暴”2013年12月30日11:40:00“东北”“冬季风暴”2013年2月22日02:17:00“东北”“冬季风暴”2013年2月23日01:53:00“东北”“冬季风暴”
过滤数据的结果子集只包含满足过滤条件的6行和3个指定变量。
输入参数
文件名
- - - - - -Parquet文件名称
特征向量|字符串标量
拼字板文件的名称,指定为字符向量或字符串标量。parquetread
适用于Parquet 1.0或Parquet 2.0文件。
根据文件的位置,文件名
可以变成这些形式之一。
位置 |
形式 |
||||||||
---|---|---|---|---|---|---|---|---|---|
MATLAB中的当前文件夹或文件夹®路径 | 中指定文件的名称 例子: |
||||||||
文件夹中的文件 |
如果文件不在当前文件夹或MATLAB路径上的文件夹中,则指定完整或相对路径名。 例子: 例子: |
||||||||
互联网网址 | 如果文件指定为internet统一资源定位符(URL),则 例子: |
||||||||
远程位置 |
如果文件存储在远程位置,则
根据位置的远近
有关更多信息,请参见使用远程数据. 例子: |
的parquetread
函数可以从Parquet文件中导入结构化数据。有关支持读取的Parquet数据类型的详细信息,请参见金宝appApache Parquet数据类型映射.
数据类型:字符
|字符串
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:“OutputType”、“表”
将Parquet文件中的数据作为表导入。
OutputType
- - - - - -输出数据类型
“汽车”
(默认)|“表”
|“时间表”
SelectedVariableNames
- - - - - -要导入的变量子集
特征向量|字符串标量|字符向量的单元格数组|字符串数组
要导入的变量子集,指定为逗号分隔的对,由“SelectedVariableNames”
字符向量,字符串标量,字符向量的单元格数组,或者字符串数组。
SelectedVariableNames
必须是Parquet文件中包含的变量名的子集。要获取文件中所有变量的名称,请使用VariableNames
的属性ParquetInfo
对象。如果没有指定
SelectedVariableNames
名称-值对,parquetread
从文件中读取所有变量。
数据类型:字符
|字符串
|细胞
RowTimes
- - - - - -行乘以变量
变量名|时间向量
行乘以变量,指定为逗号分隔的对,由“RowTimes”
还有一个变量名或者时间向量。
变量名称必须是字符向量或字符串标量,包含输入表中包含的任何变量的名称
datetime
或持续时间
值。由变量名指定的变量为行提供行时间标签。输入表的其余变量成为时间表的变量。时间向量必须是a
datetime
向量还是a持续时间
向量。时间向量的元素数必须等于输入表的行数。时间向量中的时间值不需要是唯一的、排序的或规则的。输入表的所有变量都成为时间表的变量。
数据类型:字符
|字符串
|datetime
|持续时间
开始时间
- - - - - -行次数的开始时间
datetime标量|时间常数
行时间的开始时间,指定为逗号分隔的对,由开始时间
和datetime标量或duration标量。
如果开始时间为datetime,则行的时间
T
是datetime值。如果开始时间为持续时间,则行的时间
T
是持续时间值。如果时间步骤是一个日历持续时间,那么开始时间必须是一个datetime值。
开始时间
与时间表相关的参数。的parquetread
函数使用开始时间
随着SampleRate
或步伐
为输出定义时间向量T
.
数据类型:datetime
|持续时间
SampleRate
- - - - - -采样率
正数值标量
采样率,指定为由逗号分隔的对组成“SampleRate”
和一个正的标量。采样率是输出时间表时间向量的每秒采样数(Hz)T
.
SampleRate
与时间表相关的参数。的parquetread
函数使用SampleRate
与其他时间表参数一起定义输出的时间向量T
.
数据类型:双
RowGroups
- - - - - -要导入的行组的索引
正数值标量|正整数向量
要导入的行组的索引,指定为正数值标量或正整数的向量,引用要读取的行组的索引。
如果指定标量,则该函数读取单行组。
如果指定一个向量,则该函数读取所有指定的行组。
如果不指定行组,则
parquetread
导入整个文件。
例子:RowGroups = 701:720
RowFilter
- - - - - -筛选器以选择要导入的行
matlab.io.RowFilter
对象
筛选器来选择要导入的行,指定为matlab.io.RowFilter
对象。的matlab.io.RowFilter
对象指定每行必须满足的条件,以便包含在输出表或时间表中。如果您没有指定RowFilter
,然后parquetread
从输入Parquet文件中导入所有行。
步伐
- - - - - -时间向量的时间步长
持续时间|calendarDuration
时间向量的时间步长,由逗号分隔的对组成“步伐”
和一个持续时间标量。
如果将时间步长指定为日历持续时间(例如,日历月),则行时间向量必须为datetime向量。
如果将时间步长指定为持续时间(例如秒),则行时间向量可以是datetime或duration向量。
步伐
与时间表相关的参数。的parquetread
函数使用步伐
与其他时间表参数一起定义输出的时间向量T
.
VariableNamingRule
- - - - - -标记以保留变量名
“修改”
(默认)|“保存”
标记以保留变量名,指定为任意一种“修改”
或“保存”
.
“修改”
-转换无效的变量名(由isvarname
函数)到有效的MATLAB标识符。“保存”
-保留不是有效MATLAB标识符的变量名,例如包含空格和非ascii字符的变量名。
从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,他们可以从任何字符开始,而不仅仅是字母。变量名和行名不必是有效的MATLAB标识符(由isvarname
功能)。若要保留这些变量名和行名,请设置值VariableNamingRule
来“保存”
.的值时,变量名不会刷新VariableNamingRule
从“修改”
来“保存”
.
数据类型:字符
|字符串
输出参数
T
-输出数据
表|时间表
输出数据,作为表格或时间表返回。的输出。parquetread
函数的值OutputType
名称-值对。有关的名称-值对描述,请参阅OutputType
.
限制
在某些情况下,parquetwrite
创建不代表原始数组的文件T
完全正确。如果你使用parquetread
或数据存储
若要读取文件,则结果可能与原始表的格式或内容不同。有关更多信息,请参见Apache Parquet数据类型映射.
扩展功能
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2019a中引入R2022b:读取包含结构化数据的Parquet文件
从Parquet文件中读取结构化数据作为嵌套表。
R2022b:在基于线程的环境中使用function
此函数支持基于线程的环境。金宝app
R2022a:更有效地读取Parquet文件数据rowfilter
有条件地过滤行
使用时,有条件地从Parquet文件中过滤和读取数据更快(谓词下推)parquetread
而且parquetDatastore
.属性可以创建过滤条件rowfilter
函数,matlab.io.RowFilter
对象,RowFilter
名称-值参数。
R2022a:确定并定义Parquet文件数据中的行组
Parquet文件可以将一系列行存储为不同的行组,以提高粒度和有针对性的分析。parquetread
使用RowGroups
参数name-value在读取Parquet文件数据时确定行组。parquetwrite
使用RowGroupHeights
参数在写入Parquet文件数据时定义行组。
R2022a:导入嵌套的Parquet文件数据
你现在可以导入嵌套的Parquet文件数据:
LogicalType
作为列表
.LogicalType
作为没有一个
而且PhysicalType
作为BYTE_ARRAY
或FIXED_LEN_BYTE_ARRAY
.
的parquetread
函数将这些数据体系结构转换为单元格数组并导入。
R2021b:读取和写入原始时区的日期时间
Parquet文件要求时区感知时间戳位于UTC时区。在写日期时间时,parquetwrite
将它们转换为等效的UTC值,并将原始时区值存储在Parquet文件的元数据中。parquetread
使用存储的原始时区值来启用往返。
R2021a:阅读在线数据
通过指定从internet URL读取文件文件名
作为包含协议类型的字符串标量或字符向量“http://”
或“https://”
.
R2021a:使用Parquet数据格式的分类数据
元素导入Parquet数据分类
数据类型。
R2019b:读取包含任意字符的表格数据
导入变量名包含任何Unicode字符(包括空格和非ascii字符)的表格数据。若要读取包含任意变量名(例如带有空格和非ascii字符的变量名)的表格数据,请设置PreserveVariableNames
参数真正的
.
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。