主要内容

parquetread

从Parquet文件读取柱状数据

描述

例子

T= parquetread (文件名中指定的Parquet文件文件名做成表格或时间表T

例子

T= 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个指定变量。

输入参数

全部折叠

拼字板文件的名称,指定为字符向量或字符串标量。parquetread适用于Parquet 1.0或Parquet 2.0文件。

根据文件的位置,文件名可以变成这些形式之一。

位置

形式

MATLAB中的当前文件夹或文件夹®路径

中指定文件的名称文件名

例子:“data.parquet”

文件夹中的文件

如果文件不在当前文件夹或MATLAB路径上的文件夹中,则指定完整或相对路径名。

例子:“C: \ myFolder \ data.parquet”

例子:“myDir \ myFile.ext”

互联网网址

如果文件指定为internet统一资源定位符(URL),则文件名必须包含协议类型“http://”“https://”最后”?生= true”

例子:“http://hostname/path_to_file/my_data.parquet?生= true”

远程位置

如果文件存储在远程位置,则文件名必须包含由表单指定的文件的完整路径:

scheme_name: / /path_to_file/my_file.ext

根据位置的远近scheme_name可以是本表中的值之一。

远程位置 scheme_name
Amazon S3™ s3
Azure®Blob存储 wasbwasbs
HDFS™ hdfs

有关更多信息,请参见使用远程数据

例子:s3: / / bucketname / path_to_file / data.parquet '

parquetread函数可以从Parquet文件中导入结构化数据。有关支持读取的Parquet数据类型的详细信息,请参见金宝appApache Parquet数据类型映射

数据类型:字符|字符串

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“OutputType”、“表”将Parquet文件中的数据作为表导入。

输出数据类型,指定为逗号分隔的对,由“OutputType”而且“汽车”“表”,或“时间表”

  • “汽车”-返回表格或时间表。的parquetread根据指定的其他名称-值对检测输出是表还是时间表。例如,当您设置时间表相关的名称-值对时,则parquetread推断输出是一个时间表。设置这些名称-值对表明输出是一个时间表:RowTimes开始时间SampleRate,或步伐

  • “表”—返回一个表。有关表数据类型的详细信息,请参见表格

  • “时间表”-返回时间表。有关时间表数据类型的详细信息,请参见时间表

例子:“OutputType”、“时间表”

数据类型:字符|字符串

要导入的变量子集,指定为逗号分隔的对,由“SelectedVariableNames”字符向量,字符串标量,字符向量的单元格数组,或者字符串数组。

  • SelectedVariableNames必须是Parquet文件中包含的变量名的子集。要获取文件中所有变量的名称,请使用VariableNames的属性ParquetInfo对象。

  • 如果没有指定SelectedVariableNames名称-值对,parquetread从文件中读取所有变量。

数据类型:字符|字符串|细胞

行乘以变量,指定为逗号分隔的对,由“RowTimes”还有一个变量名或者时间向量。

  • 变量名称必须是字符向量或字符串标量,包含输入表中包含的任何变量的名称datetime持续时间值。由变量名指定的变量为行提供行时间标签。输入表的其余变量成为时间表的变量。

  • 时间向量必须是adatetime向量还是a持续时间向量。时间向量的元素数必须等于输入表的行数。时间向量中的时间值不需要是唯一的、排序的或规则的。输入表的所有变量都成为时间表的变量。

数据类型:字符|字符串|datetime|持续时间

行时间的开始时间,指定为逗号分隔的对,由开始时间和datetime标量或duration标量。

  • 如果开始时间为datetime,则行的时间T是datetime值。

  • 如果开始时间为持续时间,则行的时间T是持续时间值。

  • 如果时间步骤是一个日历持续时间,那么开始时间必须是一个datetime值。

开始时间与时间表相关的参数。的parquetread函数使用开始时间随着SampleRate步伐为输出定义时间向量T

数据类型:datetime|持续时间

采样率,指定为由逗号分隔的对组成“SampleRate”和一个正的标量。采样率是输出时间表时间向量的每秒采样数(Hz)T

SampleRate与时间表相关的参数。的parquetread函数使用SampleRate与其他时间表参数一起定义输出的时间向量T

数据类型:

要导入的行组的索引,指定为正数值标量或正整数的向量,引用要读取的行组的索引。

  • 如果指定标量,则该函数读取单行组。

  • 如果指定一个向量,则该函数读取所有指定的行组。

  • 如果不指定行组,则parquetread导入整个文件。

例子:RowGroups = 701:720

筛选器来选择要导入的行,指定为matlab.io.RowFilter对象。的matlab.io.RowFilter对象指定每行必须满足的条件,以便包含在输出表或时间表中。如果您没有指定RowFilter,然后parquetread从输入Parquet文件中导入所有行。

时间向量的时间步长,由逗号分隔的对组成“步伐”和一个持续时间标量。

  • 如果将时间步长指定为日历持续时间(例如,日历月),则行时间向量必须为datetime向量。

  • 如果将时间步长指定为持续时间(例如秒),则行时间向量可以是datetime或duration向量。

步伐与时间表相关的参数。的parquetread函数使用步伐与其他时间表参数一起定义输出的时间向量T

标记以保留变量名,指定为任意一种“修改”“保存”

  • “修改”-转换无效的变量名(由isvarname函数)到有效的MATLAB标识符。

  • “保存”-保留不是有效MATLAB标识符的变量名,例如包含空格和非ascii字符的变量名。

从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,他们可以从任何字符开始,而不仅仅是字母。变量名和行名不必是有效的MATLAB标识符(由isvarname功能)。若要保留这些变量名和行名,请设置值VariableNamingRule“保存”.的值时,变量名不会刷新VariableNamingRule“修改”“保存”

数据类型:字符|字符串

输出参数

全部折叠

输出数据,作为表格或时间表返回。的输出。parquetread函数的值OutputType名称-值对。有关的名称-值对描述,请参阅OutputType

限制

在某些情况下,parquetwrite创建不代表原始数组的文件T完全正确。如果你使用parquetread数据存储若要读取文件,则结果可能与原始表的格式或内容不同。有关更多信息,请参见Apache Parquet数据类型映射

扩展功能

版本历史

在R2019a中引入

全部展开