主要内容

将分布式数据写入输出位置

描述

例子

写(地点D.写入分布式数组中的值D.到文件夹中的文件地点.数据以适合读回的有效二进制格式存储数据存储(位置).如果不沿一维分布,MATLAB®在写入之前重新分发数据,以便使用数据存储

例子

写(filepattern.D.使用来自的文件扩展名filepattern.确定输出格式。filepattern.必须包含一个文件夹以写入文件,后面跟着一个包含通配符的文件名*.通配符表示用于生成唯一文件名的增量数字写('文件夹/ myfile _ *。csv',d)

例子

写(___名称,价值使用以前的任何语法中的任何一个语法指定具有一个或多个名称 - 值对参数的其他选项。例如,您可以指定文件类型'文件类型'和有效的文件类型(“垫”“>”'镶木地板'“文本”, 要么“表格”),也可以指定自定义写入函数来处理数据“WriteFcn”和一个功能手柄。

例子

全部折叠

此示例演示如何将分布式阵列写入文件系统,然后使用数据存储将其读回。

创建分布式数组并将其写入输出文件夹。

d =分布.rand(5000,1);位置='HDFS:// myhadoopcluster / some / output / folder';写(位置,d);

从书面文件重新创建分布式数组。

ds =数据存储(位置);d1 =分布式(DS);

此示例演示如何使用文件模式将分布式阵列写入不同的格式。

创建一个分布式表,并将其写入简单的基于文本的格式,以便许多应用程序能够读取。

dt =分布式(Array2table(rand(5000,3)));位置=“/tmp/csvdata/dt_*.csv”;写(位置,dt);

从写入的文件重新创建分布式表。

ds =数据存储(位置);dt1 =分布式(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(信息,数据)filename = info.suggestedFileName;可编程(数据,文件名,“文件类型”“电子表格”);结尾

使用自定义写入功能创建分布式表并将其写入磁盘。

dt =分布式(Array2table(rand(5000,3)));位置=“/tmp/MyData/tt.*.xlsx”;写(位置,DT,“writefcn”,@datawriter);

输入参数

全部折叠

文件夹位置写入数据,指定为字符向量或字符串。地点可以指定完整路径或相对路径。指定的文件夹可以是以下选项之一:

  • 不包含其他文件的现有空文件夹

  • 新文件夹那个创造

您可以将数据写入计算机上的本地文件夹、共享网络上的文件夹或远程位置,如Amazon S3™、Windows Azure®存储Blob或Hadoop®分布式文件系统(HDFS)™). 有关向远程位置读取和写入数据的更多信息,请参阅使用远程数据

例子:位置='../../dir/data'指定相对文件路径。

例子:位置='C:\Users\MyName\Desktop\data'指定Windows的绝对路径®桌面文件夹。

例子:位置= '文件:/ / /道路/ /数据的指定文件夹的绝对URI路径。

例子:位置='HDFS:// myhadoopcluster / some /输出/文件夹'指定HDFS URL。

例子:位置='s3://bucketname/some/output/folder'指定Amazon S3位置。

数据类型:烧焦|细绳

输入数组,指定为分布式数组。

文件命名模式,指定为字符串或字符向量。文件命名模式必须包含要将文件写入的文件夹,后跟包含通配符的文件名*用序列号替换通配符,以确保文件名唯一。

例子:写(“文件夹/ data_ * . txt”,D)写入分布式数组D.作为一系列.txt归档文件夹使用文件名data_1.txt.data_2.txt., 等等。

数据类型:烧焦|细绳

名称-值对的观点

指定可选的逗号分离对名称,价值论据。名称是参数名称和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值

例子:写入('C:\myData',D',FileType',text',WriteVariableNames',false)写入分布式数组D.C:\ mydata作为一个不使用变量名称作为列标题的文本文件的集合。
一般选择

全部折叠

文件类型,指定为逗号分隔对组成'文件类型'和允许的文件类型之一:'汽车'“垫”'镶木地板'“>”“文本”, 要么“表格”

使用'文件类型'名称 - 值对地点指定要写入的文件类型的参数。默认情况下,尝试自动检测正确的文件类型。您不需要指定'文件类型'名称 - 值对参数如果中的扩展名可以确定文件类型地点filepattern.论据。可以从这些扩展中确定文件类型:

  • 。垫用于MATLAB数据文件

  • .parquet帕尔克先生对于镶木地板文件

  • .seq对于序列文件

  • .txt.DAT., 要么.csv.用于分隔的文本文件

  • .xls..xlsx..xlsb.xlsm.xltx, 要么.xltm用于电子表格文件

例子:写('c:\ mydata',d,'filetype','text')

定制写作函数,指定为逗号分隔对组成“WriteFcn”和一个函数句柄。指定的函数从中接收数据块D.并负责创建输出文件。你可以使用“WriteFcn”名称值对参数以各种格式写入数据,即使输出格式不直接支持金宝app

功能性签名

自定义写入函数必须接受两个输入参数,信息数据

函数myWriter(信息,数据)

  • 数据包含一个数据块D.

  • 信息是一种结构,其字段包含有关数据块的信息。您可以使用这些字段构建在最终位置内全局唯一的新文件名。结构字段包括:

    场地 描述
    必备位置 临时输出文件夹的完全限定路径。必须将所有输出文件写入此文件夹。
    必填资料 输出文件名所需的文件模式。如果仅指定了文件夹名称,则此字段为空。
    SuggestedFilename 满足位置和命名要求的完全合格的全局唯一文件名。
    PartitionIndex 正在写入的分布式阵列分区的索引。
    numpartitions 分布式阵列分区总数。
    blockindexinpartition. 分区中当前数据块的位置。
    Isfinalblock. 真正的如果当前块是分区的最终块。

文件命名

用于输出文件的文件名确定稍后在稍后重新读取文件的顺序数据存储. 如果文件的顺序很重要,那么最佳实践是使用SuggestedFilename字段来命名文件,因为建议的名称保证了文件顺序。如果不使用建议的文件名,则自定义写入功能必须创建全局唯一且顺序正确的文件名。文件名应遵循中概述的命名模式必填资料.即使每个工作人员都写入自己的本地文件夹,文件名必须是唯一的,并且在工人之间正确排序。

阵列具有多个分区

分布式阵列被分成分区,以便于与并行计算工具箱™并行运行阵列上的计算。在编写分布式阵列时,每个分区划分为较小的块。

信息包含几个与分区相关的字段:PartitionIndexnumpartitionsblockindexinpartition.,Isfinalblock..当您编写单个文件并附加到它时,这些字段很有用,这是具有已分成许多块的大分区的阵列的常用任务。每块调用自定义写入函数,并且一个分区中的块始终按一名工人按顺序编写。但是,不同的分区可以由不同的工人写作。

例子函数

写出电子表格文件的简单写作函数是:

函数DataWriter(信息,数据)filename = info.suggestedFileName;可编程(数据,文件名,'文件类型'“表格”结尾
调用DataWriter.作为一些数据的写作函数D.,使用命令:
d =分布式(Array2table(Rand(5000,3)));位置='/tmp/mydata/d_*.xlsx';写(位置,D,“WriteFcn”,@datawriter);
对于每个块,DataWriter.函数中建议的文件名信息结构和调用可编程写一个电子表格文件。方法中指定的文件命名模式将考虑到建议的文件名地点论点

数据类型:function_handle.

文本或电子表格文件

全部折叠

将变量名写成列标题的指示符,指定为逗号分隔对,由“WriteVariableNames”和一个数字或逻辑1真正的)或0.错误的).

指标

行为

真正的

变量名包含在输出的列标题中。这是默认行为。

错误的

变量名不包含在输出中。

用于写入日期的区域设置,指定为逗号分隔的对,由'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”

数据类型:烧焦|细绳

仅限文本文件

全部折叠

字段分隔符,指定为逗号分隔对组成'delimiter'和其中一个说明符:

说明符

字段分隔符

','

'逗号'

逗号。这是默认行为。

''

“空间”

空间

' \ t '

“标签”

标签

“;”

“半成品”

分号

“|”

“酒吧”

垂直条

你可以使用'delimiter'名称-值对参数仅用于分隔文本文件。

例子:'delimiter','space''delimiter',“空间”

用于书写引用文本的指示符,指定为逗号分隔对,由“QuoteStrings”或者错误的真正的.如果“QuoteStrings”真正的, 然后用双引号括起文本,并用两个双引号字符替换作为该文本一部分出现的任何双引号字符。有关示例,请参见写引用的文本到CSV文件

你可以使用“QuoteStrings”仅使用带分隔符的文本文件的名称-值对参数。

与文件相关联的字符编码方案,指定为包含的逗号分隔对'编码''系统'或标准字符编码方案名称,如此表中的其中一个值。当您未指定任何编码或指定编码时'系统', 这函数使用系统默认编码写入文件。

“繁体”

'ISO-8859-1'

'Windows-874'

'big5-hkscs'

'ISO-8859-2'

'Windows-949'

“CP949”

'ISO-8859-3'

'Windows-1250'

'euc-kr'

'ISO-8859-4'

'Windows-1251'

'euc-jp'

'ISO-8859-5'

“windows - 1252”

'euc-tw'

“iso - 8859 - 6”

“windows - 1253”

“GB18030”

“iso - 8859 - 7”

“windows-1254”

'GB2312'

'ISO-8859-8'

“windows-1255”

“GBK”

'ISO-8859-9'

“windows-1256”

“IBM866”

“iso - 8859 - 11”

“windows-1257”

'koi8-r'

'ISO-8859-13'

'Windows-1258'

'koi8-u'

“iso - 8859 - 15”

'美国 - ascii'

'Macintosh'

'UTF-8'

'shift_jis'

例子:“编码”、“系统”“编码”,“系统”使用系统默认编码。

电子表格文件只

全部折叠

目标工作表,指定为逗号分隔的配对组成'床单'以及包含工作表名称或指示工作表索引的正整数的字符向量或字符串标量。工作表名称不能包含冒号().确定电子表格文件中的纸张名称,使用[状态,表] = XLSFINFO(文件名)

如果图纸不存在,则在工作表集合结束时添加新表。如果表格是比工作表数大的索引,那么追加空工作表,直到工作簿中的工作表数等于工作表索引。无论哪种情况,生成警告,指示它已添加新工作表。

你可以使用'床单'名称 - 值对参数仅使用电子表格文件。

例子:'床单'2

例子:'床单''mysheetname'

数据类型:烧焦|细绳|单身的|双倍的|int8|int16|int32|INT64.|uint8.|uint16|UINT32|uint64

镶木地板文件只

全部折叠

拼花地板压缩算法,指定为这些值之一。

  • 'snappy'“brotli”“gzip”, 要么未压缩的.如果指定一个压缩算法,那么使用相同的算法压缩所有变量。

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

一般来说,'snappy'有更好的阅读和写作表现,“gzip”具有更高的压缩比以更高的CPU处理时间,并且“brotli”通常以压缩速度为代价生成最小的文件大小。

例子:写('c:\ mydata',d,'filetype','parquet','variablecompression','brotli')

例子:写入('C:\myData', D, 'FileType', 'parquet', 'VariableCompression', {'brotli' ' 'snappy' ' 'gzip'})

编码方案名称,指定为其中一个值:

  • '汽车'-使用'清楚的'逻辑变量的编码,以及“字典”对所有其他人编码。

  • “字典”'清楚的'-如果指定一种编码方案,则用该方案编码所有变量。

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

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

例子:写('mydata.parquet',d,'filetype','parquet','dispressencoding','plain')

例子:写('mydata.parquet',d,'filetype','parquet','displassencoding',{'plain'icimenticoding'''plain'})

拼花版使用,指定为任意一种'1.0''2.0'.默认情况下,'2.0'提供最有效的存储,但您可以选择'1.0'有关支持地板格式的外部应用程序的最广泛兼容性。金宝app

限制

在某些情况下,写(位置,D,'filetype',键入)创建不代表原始数组的文件D.确切地。如果你使用数据存储(位置)要读取检查点文件,则结果可能不具有与原始分布式表相同的格式或内容。

为了“文本”“表格”文件类型,使用这些规则:

  • 使用数字输出数字变量隆格格式化,字符,字符或字符串变量为未引用的文本。

  • 对于具有多个列的非文本变量,在每行上输出多个分隔符分隔的字段,并为文件的第一行构造适当的列标题。

  • 将具有两个以上维度的变量作为二维变量输出,并折叠尾随维度。

  • 对于cell-valued的变量,在多个分隔符分离字段中将每个单元格的内容输出为单行,当内容是数字,逻辑,字符或分类时,并且否则输出单个空字段。

不要使用“文本”“表格”文件类型如果需要编写分布式数组的精确检查点。

提示

  • 使用创建的功能检查站快照在您工作时的数据。此操作允许您直接从磁盘上的文件重建分布式阵列,而不是重新执行产生分布式阵列的所有命令。

也可以看看

||

在R2017A介绍