分区
对数据存储进行分区
描述
例子
将数据存储划分为特定数量的部件
为大量文件创建一个数据存储。对于本例,使用示例文件的10个副本airlinesmall.csv
.若要处理表格数据中缺失的字段,请指定名称-值对TreatAsMissing
而且MissingValue
.
文件= repmat({“airlinesmall.csv”} 1 10);ds = tabularTextDatastore(文件,...“TreatAsMissing”,“NA”,“MissingValue”, 0);
将数据存储区划分为三个部分,并返回第一个分区。的分区
函数从数据存储中返回大约三分之一的数据ds
.
Subds =分区(ds,3,1)
subds = TabularTextDatastore属性:Files:{'…\matlab\toolbox\matlab\demos\ airlinsmall .csv';’……\ matlab \ matlab工具箱\ \ demo \ airlinesmall.csv”;\matlab\toolbox\matlab\demos\ airlinsmall .csvalteratefilesystemroots: {} ReadVariableNames: true VariableNames:{'年','月','月之日'…和26个更多}文本格式属性:NumHeaderLines: 0分隔符:',' RowDelimiter: '\r\n' TreatAsMissing: 'NA' MissingValue: 0高级文本格式属性:TextscanFormats: {'%f', '%f', '%f'…TextType: 'char' ExponentCharacters: 'eEdD' CommentStyle: "空格:' \b\t' MultipleDelimitersAsOne: false属性,控制表返回预览,读取,readall: SelectedVariableNames:{'年','月','月日'…和26}SelectedFormats: {% f ', ' % f ', ' % f '……和26个}ReadSize: 20000行
的文件
属性包含该数据存储中包含的文件列表。检查文件的数量文件
属性ds
和分区的数据存储再分
.数据存储ds
包含10个文件和分区再分
包含前四个文件。
长度(ds.Files)
Ans = 10
长度(subds.Files)
Ans = 4
将数据存储划分为默认部件数
从示例文件创建一个数据存储,mapredout.mat
的输出文件mapreduce
函数。
数据存储(“mapredout.mat”);
的默认分区数ds
.
N = numpartitions(ds);
将数据存储划分为默认的分区数,并返回与第一个分区对应的数据存储。
Subds =分区(ds,n,1);
读取数据再分
.
而Hasdata (subds) data = read(subds);结束
分区数据存储文件
创建一个包含三个映像文件的数据存储。
ds = imageDatastore({“street1.jpg”,“peppers.png”,“corn.tif”})
ds = ImageDatastore属性:Files:{'…\matlab\toolbox\matlab\demos\street1.jpg';matlab’……\ \ matlab工具箱\ \ imagesci \ peppers.png”;\matlab\toolbox\matlab\imagesci\corn.tif'} ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage . txt
按文件划分数据存储区,并返回与第二个文件对应的部分。
Subds =分区(ds,“文件”, 2)
Files:{'…\matlab\toolbox\matlab\imagesci\peppers.png'} ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage
再分
包含一个文件。
并行划分数据
从示例文件创建一个数据存储,mapredout.mat
的输出文件mapreduce
函数。
数据存储(“mapredout.mat”);
在并行池中的三个worker上将数据存储分区为三个部分。
numWorkers = 3;P = parpool(“本地”, numWorkers);N = numpartitions(ds,p);parforIi =1:n subds =分区(ds,n, Ii);而Hasdata (subds) data = read(subds);结束结束
输入参数
ds
- - - - - -输入数据存储
数据存储
输入数据存储。您可以使用数据存储
函数从数据创建一个数据存储对象。
n
- - - - - -分区数
正整数
分区数,指定为正整数。
如果指定的分区数量不是数据存储中文件数量的数字因素,分区
将从第一个分区开始,将剩余的每个观察结果放在现有分区中。
包含额外观测值的现有分区数等于数据存储中的文件数除以分区数得到的余数。例如,如果您的数据存储对象包含23个文件,您希望将它们划分为3个部分,那么前两个分区将被划分为3个部分分区
create将包含8个文件,最后一个分区将包含7个文件。
例子:3.
数据类型:双
指数
- - - - - -指数
正整数
索引,指定为正整数。
例子:1
数据类型:双
文件名
- - - - - -文件名称
特征向量|字符串标量
文件名,指定为字符向量或字符串标量。
的价值文件名
中包含的文件名必须完全匹配文件
属性。要确保文件名完全匹配,请指定文件名
使用ds。文件{N}
在哪里N
文件的索引是否在文件
财产。例如,ds。文件{3}
指定数据存储中的第三个文件ds
.
例子:ds。文件{3}
例子:“file1.csv”
例子:“. . / dir /数据/ file1.csv”
例子:hdfs: / / myserver: 7867 /数据/中
数据类型:字符
输出参数
再分
-输出数据存储
数据存储
输出数据存储。输出数据存储与输入数据存储具有相同的类型ds
.
扩展功能
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
使用注意事项和限制:
在基于线程的环境中,可以使用
分区
仅适用于以下数据存储:ImageDatastore
对象CombinedDatastore
或TransformedDatastore
从中创建的对象ImageDatastore
通过使用结合
或变换
你可以使用
分区
与其他数据存储,如果您有并行计算工具箱™。为此,请使用进程支持的并行池而不是使用backgroundPool
或ThreadPool
(使用ProcessPool
或ClusterPool
).
有关更多信息,请参见在线程环境中运行MATLAB函数.
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。