写
将分布式数据写入输出位置
描述
写(
使用文件扩展名fromfilepattern
,D
)filepattern
来确定输出格式。filepattern
必须包含要写入文件的文件夹,后面跟着包含通配符的文件名*
.例如,通配符表示用于生成惟一文件名的增量数字写(文件夹/ myfile_ * . csv, D)
.
例子
编写分布式阵列
此示例演示如何将分布式数组写入文件系统,然后使用数据存储将其读取回来。
创建分布式数组并将其写入输出文件夹。
d = distributed.rand (5000 1);位置=hdfs: / / myHadoopCluster /一些/输出/文件夹”;写(位置,d);
从写入的文件重新创建分布式数组。
ds =数据存储(位置);d1 =分布式(ds);
使用文件模式编写分布式数组
这个例子展示了如何使用文件模式将分布式数组写入不同的格式。
创建一个分布式表,并将其写入许多应用程序都能读取的基于文本的简单格式。
分布式(dt = array2table (rand (5000 3)));位置=“/ tmp / CSVData / dt_ * . csv”;写(位置,dt);
从写入的文件重新创建分布式表。
ds =数据存储(位置);dt₁=分布式(ds);
写和读回高数据和分布式数据
您可以写入分布式数据并将其作为高数据读取回来,反之亦然。
创建分布式时间表并将其写入磁盘。
分布式(dt = array2table (rand (5000 3)));位置=“/ tmp / CSVData / dt_ * . csv”;写(位置,dt);
用写好的文件做一张高桌子。
ds =数据存储(位置);tt =高(ds);
或者,也可以将写入高数据的数据读入分布式数据。创建一个高时间表,并将其写入磁盘。
tt =高(array2table (rand (5000 3)));位置=“/ tmp / CSVData / dt_ * . csv”;写(位置、tt);
读一读分布式时间表。
ds =数据存储(位置);dt =分布式(ds);
使用写函数写分布式数组
此示例演示如何使用自定义写函数将分布式数组写入文件系统。
创建一个简单的写函数,写出电子表格文件。
函数dataWriter(info, data) filename = info. proposstedfilename;writetable(数据、文件名“文件类型”,“表格”);结束
创建分布式表,并使用自定义写入功能将其写入磁盘。
分布式(dt = array2table (rand (5000 3)));位置=“/ tmp / MyData / tt_ * .xlsx”;写(位置,dt,“WriteFcn”, @dataWriter);
输入参数
位置
- - - - - -写入数据的文件夹位置
特征向量|字符串
写入数据的文件夹位置,指定为字符向量或字符串。位置
可以指定完整路径或相对路径。指定的文件夹可以是以下选项之一:
现有空文件夹,不包含其他文件
新文件夹
写
创建
您可以将数据写入计算机上的本地文件夹、共享网络上的文件夹或远程位置,例如Amazon S3™、Windows Azure®存储Blob,或Hadoop®分布式文件系统。有关将数据读写到远程位置的详细信息,请参见使用远程数据.
例子:位置 = '../../ dir /数据的
指定相对文件路径。
例子:位置= ' C: \ \用户桌面的名字\ \数据”
指定Windows的绝对路径®桌面文件夹。
例子:位置= '文件:/ / /道路/ /数据的
指定文件夹的绝对URI路径。
例子:位置= ' hdfs: / / myHadoopCluster /一些/输出/文件夹”
HDFS URL。
例子:位置= ' s3: / / bucketname /一些/输出/文件夹”
指定Amazon S3的位置。
数据类型:字符
|字符串
D
- - - - - -输入数组
分布式阵列
输入数组,指定为分布式数组。
filepattern
- - - - - -文件命名模式
字符串|特征向量
文件命名模式,指定为字符串或字符向量。文件命名模式必须包含一个要将文件写入其中的文件夹,后跟一个包含通配符的文件名*
.写
将通配符替换为连续编号以确保文件名的唯一性。
例子:写(“文件夹/ data_ * . txt”,D)
写入分布式数组D
作为一系列的. txt
文件文件夹
用文件名data_1.txt
,data_2.txt
,等等。
数据类型:字符
|字符串
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:write('C:\myData', D, 'FileType', 'text', 'WriteVariableNames', false)
写入分布式数组D
来C: \ myData
作为不使用变量名作为列标题的文本文件的集合。
文件类型
- - - - - -类型的文件
“汽车”
(默认)|“垫”
|“铺”
|“>”
|“文本”
|“表格”
文件类型,指定为逗号分隔的对,由“文件类型”
和允许的文件类型之一:“汽车”
,“垫”
,“铺”
,“>”
,“文本”
,或“表格”
.
使用“文件类型”
的名称-值对位置
参数指定要写入的文件类型。默认情况下,写
尝试自动检测正确的文件类型。不需要指定“文件类型”
名称-值对参数if写
可以从扩展名中确定文件类型位置
或filepattern
参数。写
可以从这些扩展名确定文件类型:
.mat
for MATLAB数据文件.parquet
或.parq
镶木地板文件.seq
序列文件. txt
,.dat
,或. csv
对于分隔的文本文件xls
,.xlsx
,.xlsb
,.xlsm
,.xltx
,或.xltm
电子表格文件
例子:write('C:\myData', D, 'FileType', 'text')
WriteFcn
- - - - - -自定义编写函数
函数处理
自定义写入函数,指定为逗号分隔的对,由“WriteFcn”
和一个函数句柄。指定的函数接收来自的数据块D
并负责创建输出文件。您可以使用“WriteFcn”
参数以各种格式写入数据,即使输出格式不直接支持万博1manbetx写
.
函数签名
自定义写入函数必须接受两个输入参数,信息
而且数据
:
函数myWriter(信息,数据)
数据
包含来自的数据块D
.信息
是一个结构,其字段包含关于数据块的信息。您可以使用这些字段来构建在最终位置内全局唯一的新文件名。结构字段为:场 描述 RequiredLocation
临时输出文件夹的完全限定路径。所有输出文件都必须写入此文件夹。 RequiredFilePattern
输出文件名所需的文件模式。如果只指定文件夹名,则此字段为空。 SuggestedFilename
满足位置和命名要求的完全限定的全局惟一文件名。 PartitionIndex
正在写入的分布式阵列分区的索引。 NumPartitions
分布式阵列中的分区总数。 BlockIndexInPartition
当前数据块在分区中的位置。 IsFinalBlock
真正的
如果当前块是分区的最后一个块。
文件命名
用于输出文件的文件名决定了稍后读取文件的顺序数据存储
.如果文件的顺序很重要,那么最佳实践是使用SuggestedFilename
字段来命名文件,因为建议的名称保证了文件的顺序。如果不使用建议的文件名,则自定义写入功能必须创建全局惟一的、顺序正确的文件名。文件名应该遵循中列出的命名模式RequiredFilePattern
.文件名称必须是唯一的,并且在worker之间的顺序必须正确,即使每个worker都写入自己的本地文件夹。
多分区阵列
分布式阵列被划分为多个分区,以便与并行计算工具箱™并行地在阵列上运行计算。在编写分布式数组时,每个分区都被划分为更小的块。
信息
包含几个与分区相关的字段:PartitionIndex
,NumPartitions
,BlockIndexInPartition
,IsFinalBlock
.当您写出一个文件并向其追加内容时,这些字段非常有用,对于具有大分区且被分割为许多块的数组来说,这是一项常见任务。每个块调用一次自定义写入函数,一个分区中的块总是在一个worker上按顺序写入。但是,不同的分区可以由不同的工作人员编写。
例子函数
一个简单的写出电子表格文件的函数是:
函数dataWriter(info, data) filename = info. proposstedfilename;writetable(数据、文件名“文件类型”,“表格”)结束
dataWriter
作为一些数据的写入函数D
,使用以下命令:分布式(D = array2table (rand (5000 3)));位置=“/ tmp / MyData / D_ * .xlsx”;写(位置、维“WriteFcn”, @dataWriter);
dataWriter
函数中使用建议的文件名信息
结构和调用writetable
写出一个电子表格文件。方法中指定的文件命名模式将被考虑在内位置
论点。
数据类型:function_handle
WriteVariableNames
- - - - - -将变量名作为列标题的指示器
真正的
或1
(默认)|假
或0
指示符,用于将变量名写入列标题,指定为逗号分隔的对,由“WriteVariableNames”
和一个数字或逻辑1
(真正的
)或0
(假
).
指示器 |
行为 |
---|---|
|
变量名包含在输出的列标题中。这是默认的行为。 |
|
变量名不包含在输出中。 |
DateLocale
- - - - - -写作日期的地点
特征向量|字符串标量
用于书写日期的地区,指定为逗号分隔的对,由“DateLocale”
一个字符向量或者一个字符串标量。当你写datetime
值到文件中,使用DateLocale
指定区域设置写
应写出月份和星期的名称和缩写。字符向量或字符串采用以下形式
,在那里xx
_YY
xx
是ISO 639-1两个字母的小写代码,表示一种语言,和YY
是一个大写的ISO 3166-1 alpha-2代码,表示一个国家。有关区域设置的公共值列表,请参阅语言环境
的名称-值对参数datetime
函数。
为Excel®文件,写
写变量包含datetime
数组作为Excel日期,并忽略“DateLocale”
参数值。如果datetime
变量包含1900年或1904年之前的年份写
将变量写入文本。有关Excel日期的更多信息,请参见Excel中1900年和1904年日期系统的区别.
例子:“DateLocale”、“ja_JP”
或“DateLocale”、“ja_JP”
数据类型:字符
|字符串
分隔符
- - - - - -字段分隔符字符
”、“
或“逗号”
|' '
或“空间”
|……
字段分隔符字符,指定为逗号分隔对,由“分隔符”
其中一个指示符是:
说明符 |
字段分隔符 |
---|---|
|
逗号。这是默认的行为。 |
|
空间 |
|
选项卡 |
|
分号 |
|
竖线 |
您可以使用“分隔符”
名称-值对参数仅用于分隔的文本文件。
例子:“分隔符”、“空间”
或“分隔符”,“空间”
QuoteStrings
- - - - - -用于写引用文本的指示符
假
(默认)|真正的
用于写入引用文本的指示符,指定为逗号分隔的一对,由“QuoteStrings”
,要么假
或真正的
.如果“QuoteStrings”
是真正的
,然后写
将文本括在双引号中,并用两个双引号字符替换该文本中出现的任何双引号字符。示例请参见将引用的文本写入CSV文件.
您可以使用“QuoteStrings”
名称-值对参数仅用于分隔的文本文件。
编码
- - - - - -字符编码方案
“utf - 8”
|“iso - 8859 - 1”
|“windows - 1251”
|“windows - 1252”
|……
与文件关联的字符编码方案,指定为逗号分隔的对,由“编码”
而且“系统”
或者一个标准字符编码方案名称,如该表中的一个值。当您没有指定任何编码或将编码指定为“系统”
,写
函数使用系统默认编码写入文件。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子:“编码”、“系统”
或“编码”,“系统”
使用系统默认编码。
表
- - - - - -目标工作表
特征向量|字符串标量|正整数
目标工作表,指定为逗号分隔的对,由“表”
和包含工作表名称的字符向量或字符串标量,或指示工作表索引的正整数。工作表名称不能包含冒号(:
).要确定电子表格文件中工作表的名称,请使用(地位、床单)= xlsfinfo(文件名)
.
如果表不存在,那么写
在工作表集合的末尾添加新工作表。如果工作表的索引大于工作表的数量,则写
追加空工作表,直到工作簿中的工作表数目等于工作表索引为止。在这两种情况下,写
生成一个警告,指示它已添加了一个新的工作表。
您可以使用“表”
名称-值对参数仅用于电子表格文件。
例子:“表”
,2
例子:“表”
,“MySheetName”
数据类型:字符
|字符串
|单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
VariableCompression
- - - - - -镶木地板压缩算法
“时髦的”
(默认)|“brotli”
|“gzip”
|未压缩的
|字符向量的单元格数组|字符串向量
拼花压缩算法,指定为这些值之一。
“时髦的”
,“brotli”
,“gzip”
,或未压缩的
.如果你指定一个压缩算法,那么写
使用相同的算法压缩所有变量。或者,您可以指定字符向量的单元格数组或包含每个变量使用的压缩算法名称的字符串向量。
一般来说,“时髦的”
在读写方面有更好的表现,“gzip”
以消耗更多的CPU处理时间为代价获得更高的压缩比,并且“brotli”
通常以压缩速度为代价生成最小的文件大小。
例子:写(“C: \ myData”D“文件类型”,“铺”,“VariableCompression”,“brotli”)
例子:write('C:\myData', D, 'FileType', 'parquet', 'VariableCompression', {'brotli' 'snappy' 'gzip'})
VariableEncoding
- - - - - -编码方案名称
“汽车”
(默认)|“字典”
|“普通”
|字符向量的单元格数组|字符串向量
编码方案名称,指定为以下值之一:
“汽车”
- - - - - -写
使用“普通”
对逻辑变量进行编码,和“字典”
为所有其他人编码。“字典”
,“普通”
-如果你指定了一种编码方案,那么写
用该方案编码所有变量。或者,您可以指定字符向量的单元格数组或包含每个变量使用的编码方案名称的字符串向量。
一般来说,“字典”
编码会使文件更小,但是“普通”
对于不包含许多重复值的变量,编码可以更快。如果字典的大小或惟一值的数量增长得太大,那么编码将自动恢复到普通编码。有关Parquet编码的更多信息,请参见剧场正厅座位编码定义.
例子:(“myData写。parquet', D, 'FileType', 'parquet', 'VariableEncoding', 'plain')
例子:(“myData写。parquet', D, 'FileType', 'parquet', 'VariableEncoding', {'plain' 'dictionary' 'plain'})
版本
- - - - - -拼花版使用
“2.0”
(默认)|“1.0”
使用的拼花版本,指定为两者之一“1.0”
或“2.0”
.默认情况下,“2.0”
提供最有效的存储,但您可以选择“1.0”
与支持Parquet格式的外部应用程序最广泛的兼容性。万博1manbetx
限制
在某些情况下,write(location, D, 'FileType', type)
创建不表示原始数组的文件D
完全正确。如果你使用数据存储(位置)
要读取检查点文件,则结果的格式或内容可能与原始分布式表不相同。
为“文本”
而且“表格”
文件类型,写
使用这些规则:
写
使用以下命令输出数值变量longG
格式、类别、字符或字符串变量作为不加引号的文本。对于有多个列的非文本变量,
写
每行输出多个分隔符分隔的字段,并为文件的第一行构造合适的列标题。写
将具有两个以上维度的变量输出为二维变量,并将尾随维度折叠。对于cell-valued的变量,
写
当内容为数字、逻辑、字符或类别时,输出每个单元格的内容为单行,包含多个分隔符分隔的字段,否则输出单个空字段。
请勿使用“文本”
或“表格”
文件类型,如果您需要编写分布式阵列的精确检查点。
提示
使用
写
函数来创建检查点或快照您的数据。这种做法允许您直接从磁盘上的文件重构分布式阵列,而不是重新执行生成分布式阵列的所有命令。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。