parquetwrite
将柱状数据写入Parquet文件
描述
例子
写表格或时间表到拼花文件
将表格数据写入Parquet文件,并比较相同表格数据的大小. csv
而且.parquet
文件格式。
从文件中读取表格数据outages.csv
变成一个表。
T =可读的(“outages.csv”);
将数据写入Parquet文件格式。默认情况下,parquetwrite
函数使用时髦的
压缩方案。要指定其他压缩方案,请参见“VariableCompression”
名称-值对。
parquetwrite (“outagesDefault.parquet”, T)
中获取文件大小并计算表格数据大小的比率. csv
格式为相同数据的大小.parquet
格式。
获取尺寸. csv
文件。
FCSV = dir(which(“outages.csv”));Size_csv = fcsv.bytes
Size_csv = 101040
获取尺寸.parquet
文件。
Fparquet = dir(“outagesDefault.parquet”);Size_parquet = fparquet.bytes
Size_parquet = 44881
计算比率。
sizeatio = (size_parquet/size_csv)*100;disp (['Size Ratio = 'num2str (sizeRatio)'原始尺寸% '])
尺寸比=原尺寸的44.419%
将嵌套数据写入拼块文件
创建嵌套数据并将其写入Parquet文件。
用嵌套的数据层创建一个表。
FirstName = [“Akane”;“奥马尔。”;“玛丽亚”];LastName = [“斋藤”;“阿里”;“席尔瓦”];Names = table(FirstName,LastName);NumCourse = [5;3;6);课程= {[“微积分我”;“美国历史上”;“英国文学”;“工作室艺术”;《有机化学II》];[“美国历史上”;“艺术史”;“哲学”];[“微积分II”;“哲学II”;“芭蕾”;“音乐理论”;有机化学I;“英国文学”]};data = table(name,NumCourse,Courses)
data =3×3表名字NumCourse课程FirstName LastName _____________________ _________ ____________ " Akane”“斋藤”5 {5}x1字符串”奥马尔”“阿里”3}{3 x1字符串“玛丽亚”“席尔瓦”6 {6}x1字符串
将嵌套数据写入Parquet文件。
parquetwrite (“StudentCourseLoads.parq”、数据)
读取嵌套的Parquet数据。
T2 =镶木地板(“StudentCourseLoads.parq”)
t2 =3×3表名字NumCourse课程FirstName LastName _____________________ _________ ____________ " Akane”“斋藤”5 {5}x1字符串”奥马尔”“阿里”3}{3 x1字符串“玛丽亚”“席尔瓦”6 {6}x1字符串
输入参数
文件名
- - - - - -输出Parquet文件的名称
特征向量|字符串标量
输出Parquet文件的名称,指定为字符向量或字符串标量。
根据你要写信的地点,文件名
可以变成这些形式之一。
位置 |
形式 |
||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请指定文件的名称 例子: |
||||||||
其他文件夹 |
要写入与当前文件夹不同的文件夹,请在中指定完整或相对路径名 例子: 例子: |
||||||||
远程位置 |
要向远程位置写入数据,
根据位置的远近
有关更多信息,请参见使用远程数据. 例子: |
数据类型:字符
|字符串
T
- - - - - -输入数据
表格|时间表
输入数据,指定为表格或时间表。
使用parquetwrite
导出结构化的Parquet数据。有关支持写入的Parquet数据类型的详细信息,请参见金宝appApache Parquet数据类型映射.
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:parquetwrite(文件名,T,‘VariableCompression’,‘gzip’,“版本”,“1.0”)
VariableCompression
- - - - - -压缩方案名称
“时髦的”
(默认)|“brotli”
|“gzip”
|未压缩的
|字符向量的单元格数组|字符串向量
压缩方案名称,指定为以下值之一:
“时髦的”
,“brotli”
,“gzip”
,或未压缩的
.如果你指定一个压缩算法,那么parquetwrite
使用相同的算法压缩所有变量。或者,您可以指定字符向量的单元格数组或包含每个变量使用的压缩算法名称的字符串向量。
一般来说,“时髦的”
在读写方面有较好的表现,“gzip”
具有更高的压缩比,代价是更多的CPU处理时间,以及“brotli”
通常以压缩速度为代价生成最小的文件大小。
例子:parquetwrite(“myData。parquet', T, ' variable lecompression ', 'brotli')
例子:parquetwrite(“myData。parquet', T, 'VariableCompression', {'brotli' 'snappy' 'gzip'})
VariableEncoding
- - - - - -编码方案名称
“汽车”
(默认)|“字典”
|“普通”
|字符向量的单元格数组|字符串向量
编码方案名称,指定为以下值之一:
“汽车”
- - - - - -parquetwrite
使用“普通”
对逻辑变量进行编码,和“字典”
为所有其他人编码。“字典”
,“普通”
-如果你指定一种编码方案,那么parquetwrite
用该方案编码所有变量。或者,您可以指定字符向量的单元格数组或字符串向量,其中包含用于每个变量的编码方案的名称。
一般来说,“字典”
编码会导致更小的文件大小,但是“普通”
对于不包含许多重复值的变量,编码可以更快。如果字典的大小或唯一值的数量增长得太大,则编码将自动恢复为普通编码。有关Parquet编码的更多信息,请参见Parquet编码定义.
例子:parquetwrite(“myData。parquet', T, '变量编码','平原')
例子:parquetwrite(“myData。parquet', T, 'VariableEncoding', {'plain' 'dictionary' 'plain'})
RowGroupHeights
- - - - - -每个输出行组要写入的行数
非负数值标量|非负整数的向量
每个输出行组要写入的行数,指定为非负数字标量或非负整数的向量。
如果指定了标量,则标量值将设置输出Parquet文件中所有行组的高度。如果没有精确的倍数,最后一行组可能包含更少的行。
如果指定一个向量,则该向量中的每个值将设置输出Parquet文件中相应行组的高度。vector中所有值的和必须匹配输入表的高度。
行组是Parquet文件中可以一次读入内存的最小子集。降低行组高度有助于在读取时将数据放入内存。行组高度还会影响Parquet数据集上筛选操作的性能,因为读取时可以使用更大的行组高度筛选更大量的数据。
如果RowGroupHeights
未指定且输入表超过67108864行时,输出文件中的行组数等于地板(TotalNumberOfRows / 67108864) + 1
.
例子:RowGroupHeights = 100
例子:RowGroupHeights=[300, 400, 500, 0, 268]
版本
- - - - - -拼花版使用
“2.0”
(默认)|“1.0”
要使用的拼花版本,指定为任意一个“1.0”
或“2.0”
.默认情况下,“2.0”
提供最有效的存储,但你可以选择“1.0”
与支持Parquet格式的外部应用程序的广泛兼容性。金宝app
谨慎
Parquet 1.0版有一个限制,它不能往返类型变量uint32
(它们被读入MATLAB®作为int64
).
限制
在某些情况下,parquetwrite
创建不代表原始数组的文件T
完全正确。如果你使用parquetread
或数据存储
若要读取文件,则结果可能与原始表的格式或内容不同。有关更多信息,请参见Apache Parquet数据类型映射.
扩展功能
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
在R2019a中引入R2022b:将嵌套数据写入Parquet文件
将嵌套表和时间表变量写入Parquet文件parquetwrite
.
R2022b:在基于线程的环境中使用function
此函数支持基于线程的环境。金宝app
R2022a:确定并定义Parquet文件数据中的行组
Parquet文件可以将一系列行存储为不同的行组,以提高粒度和有针对性的分析。parquetread
使用RowGroups
参数name-value在读取Parquet文件数据时确定行组。parquetwrite
使用RowGroupHeights
参数在写入Parquet文件数据时定义行组。
R2022a:导出嵌套数据
现在可以将嵌套单元格数组导出为LIST数组。
R2021b:读取和写入原始时区的日期时间
Parquet文件要求时区感知时间戳位于UTC时区。在写日期时间时,parquetwrite
将它们转换为等效的UTC值,并将原始时区值存储在Parquet文件的元数据中。parquetread
使用存储的原始时区值来启用往返。
R2021a:使用Parquet数据格式的分类数据
写入包含分类
数据类型。
R2020a:写文件时控制编码方案和Parquet版本
的parquetwrite
函数有两个新的名称-值参数:
“VariableEncoding”
控制Parquet文件对每个变量使用纯编码还是字典编码。“版本”
指定是使用Parquet 1.0还是Parquet 2.0文件格式。
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国家站点没有针对您所在位置的访问进行优化。