主要内容

parquetwrite

将柱状数据写入Parquet文件

描述

例子

parquetwrite (文件名T写表格或时间表T中指定的文件名的Parquet 2.0文件文件名

例子

parquetwrite (文件名T名称,值使用一个或多个名称-值对参数指定其他选项。例如,您可以指定“VariableCompression”更改所使用的压缩算法,或“版本”将数据写入Parquet 1.0文件。

例子

全部折叠

将表格数据写入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文件的名称,指定为字符向量或字符串标量。

根据你要写信的地点,文件名可以变成这些形式之一。

位置

形式

当前文件夹

要写入当前文件夹,请指定文件的名称文件名

例子:“myData.parquet”

其他文件夹

要写入与当前文件夹不同的文件夹,请在中指定完整或相对路径名文件名

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

例子:“dataDir \ myData.parquet”

远程位置

要向远程位置写入数据,文件名必须包含指定为统一资源定位器(URL)的文件的完整路径,格式为:

scheme_name://path_to_file/myData.parquet

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

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

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

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

数据类型:字符|字符串

输入数据,指定为表格或时间表。

使用parquetwrite导出结构化的Parquet数据。有关支持写入的Parquet数据类型的详细信息,请参见金宝appApache Parquet数据类型映射

名称-值参数

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

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

例子:parquetwrite(文件名,T,‘VariableCompression’,‘gzip’,“版本”,“1.0”)

压缩方案名称,指定为以下值之一:

  • “时髦的”“brotli”“gzip”,或未压缩的.如果你指定一个压缩算法,那么parquetwrite使用相同的算法压缩所有变量。

  • 或者,您可以指定字符向量的单元格数组或包含每个变量使用的压缩算法名称的字符串向量。

一般来说,“时髦的”在读写方面有较好的表现,“gzip”具有更高的压缩比,代价是更多的CPU处理时间,以及“brotli”通常以压缩速度为代价生成最小的文件大小。

例子:parquetwrite(“myData。parquet', T, ' variable lecompression ', 'brotli')

例子:parquetwrite(“myData。parquet', T, 'VariableCompression', {'brotli' 'snappy' 'gzip'})

编码方案名称,指定为以下值之一:

  • “汽车”- - - - - -parquetwrite使用“普通”对逻辑变量进行编码,和“字典”为所有其他人编码。

  • “字典”“普通”-如果你指定一种编码方案,那么parquetwrite用该方案编码所有变量。

  • 或者,您可以指定字符向量的单元格数组或字符串向量,其中包含用于每个变量的编码方案的名称。

一般来说,“字典”编码会导致更小的文件大小,但是“普通”对于不包含许多重复值的变量,编码可以更快。如果字典的大小或唯一值的数量增长得太大,则编码将自动恢复为普通编码。有关Parquet编码的更多信息,请参见Parquet编码定义

例子:parquetwrite(“myData。parquet', T, '变量编码','平原')

例子:parquetwrite(“myData。parquet', T, 'VariableEncoding', {'plain' 'dictionary' 'plain'})

每个输出行组要写入的行数,指定为非负数字标量或非负整数的向量。

  • 如果指定了标量,则标量值将设置输出Parquet文件中所有行组的高度。如果没有精确的倍数,最后一行组可能包含更少的行。

  • 如果指定一个向量,则该向量中的每个值将设置输出Parquet文件中相应行组的高度。vector中所有值的和必须匹配输入表的高度。

行组是Parquet文件中可以一次读入内存的最小子集。降低行组高度有助于在读取时将数据放入内存。行组高度还会影响Parquet数据集上筛选操作的性能,因为读取时可以使用更大的行组高度筛选更大量的数据。

如果RowGroupHeights未指定且输入表超过67108864行时,输出文件中的行组数等于地板(TotalNumberOfRows / 67108864) + 1

例子:RowGroupHeights = 100

例子:RowGroupHeights=[300, 400, 500, 0, 268]

要使用的拼花版本,指定为任意一个“1.0”“2.0”.默认情况下,“2.0”提供最有效的存储,但你可以选择“1.0”与支持Parquet格式的外部应用程序的广泛兼容性。金宝app

谨慎

Parquet 1.0版有一个限制,它不能往返类型变量uint32(它们被读入MATLAB®作为int64).

限制

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

扩展功能

版本历史

在R2019a中引入

全部展开