主要内容

KeyValueDatastore

用于键值对数据的数据存储mapreduce

描述

KeyValueDatastore对象与包含作为输出或输入的键值对数据的文件相关联mapreduce。使用KeyValueDatastore属性来指定要如何访问数据。使用点符号来查看或修改属性的特定属性KeyValueDatastore对象:

Ds = datastore(“mapredout.mat”);ds。ReadSize = 20;

的值KeyValueDatastore属性创建数据存储时使用名称-值参数数据存储功能:

Ds = datastore(“mapredout.mat”“ReadSize”, 20);

创建

创建KeyValueDatastore对象。数据存储函数。

属性

全部展开

包含在数据存储中的文件,指定为n-由字符向量或字符串数组组成的单元格数组,其中每个字符向量或字符串都是文件的完整路径。定义的文件位置的论证数据存储函数。的位置参数包含本地文件系统、网络文件系统或受支持的远程位置(如Amazon S3™、Windows Azure)上文件的完整路径金宝app®Blob存储和HDFS™。有关更多信息,请参见处理远程数据

生成的文件必须是mat文件或Sequence文件mapreduce函数。

例子:[" C: \ dir \ data \ file1.mat”;“C: \ dir \ data \ file2.mat”)

例子:[" s3: / / bucketname / path_to_files / your_file01.mat”;“s3: / / bucketname / path_to_files / your_file02.mat”)

数据类型:细胞|字符串

文件类型,指定为“垫”获取mat文件或“>”用于序列文件。缺省情况下,输出mapreduce运行在Hadoop上®是包含序列文件的数据存储。缺省情况下,所有其他的输出mapreduceoperations是包含mat文件的数据存储。

数据类型:细胞|字符串

类调用中要读取的键值对的最大数目预览函数,指定为正整数。

备用文件系统根路径,指定为名称-值参数,由“AlternateFileSystemRoots”字符串向量或单元格数组。使用“AlternateFileSystemRoots”在本地机器上创建数据存储,但需要在另一台机器(可能使用不同的操作系统)上访问和处理数据。此外,在使用并行计算工具箱™和MATLAB®并行服务器™,并且数据存储在本地机器上,在不同的平台云或集群机器上提供数据的副本,您必须使用“AlternateFileSystemRoots”关联根路径。

  • 要关联一组彼此等价的根路径,请指定“AlternateFileSystemRoots”作为一个字符串向量。例如,

    [" Z: \数据集”、“/ mynetwork /数据集”)

  • 若要关联数据存储的多组等效根路径,请指定“AlternateFileSystemRoots”作为包含多行的单元格数组,其中每行表示一组等效根路径。将单元格数组中的每行指定为字符串向量或字符向量的单元格数组。例如:

    • 指定“AlternateFileSystemRoots”作为字符串向量的单元格数组。

      {[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}

    • 另外,指定“AlternateFileSystemRoots”作为单元数组的单元数组的字符向量。

      {{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}

的价值“AlternateFileSystemRoots”必须满足以下条件:

  • 包含一行或多行,其中每行指定一组等效根路径。

  • 每行指定多个根路径,每个根路径必须至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关更多信息,请参见设置数据存储以便在不同的机器或集群上进行处理

例子:[" Z: \数据集”、“/ mynetwork /数据集”)

数据类型:字符串|细胞

对象的功能

hasdata 确定是否有数据可供读取
numpartitions 数据存储分区数
分区 对数据存储分区
预览 预览数据存储中的数据子集
读取数据存储中的数据
readall 读取数据存储中的所有数据
重置 将数据存储重置为初始状态
变换 变换数据存储
结合 合并来自多个数据存储的数据
isPartitionable 确定数据存储是否可分区
isSubsettable 确定数据存储是否可子集
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

从示例文件创建数据存储,mapredout.mat的输出文件mapreduce函数。

fs = matlab.io.datastore.FileSet(“mapredout.mat”);Ds = datastore(fs,“类型”“keyvalue”
ds =带属性的KeyValueDatastore:文件:{'…\matlab\toolbox\matlab\demos\mapredout。ReadSize: 1键值对FileType: 'mat' AlternateFileSystemRoots: {}

设置ReadSize财产8这样每个read调用最多读取一次8键值对。

ds。ReadSize = 8
ds =带属性的KeyValueDatastore:文件:{'…\matlab\toolbox\matlab\demos\mapredout。ReadSize: 8键值对FileType: 'mat' AlternateFileSystemRoots: {}

方法一次读取8个键值对a中的函数循环。循环一直执行,直到没有更多的数据可供读取hasdata (ds)返回

hasdata(ds) = read(ds);结束

显示最后一组读取的键值对。

T
T =5×2表键值  ______ ________ {' OO”}{[3090]}{' TZ '} {[216]} {XE的}{[2357]}{' 9 e '}{[521]}{“青年志愿”}{[849]}

限制

  • KeyValueDatastore不支持用R2013金宝appb编写的序列文件。使用R2014a和R2018a之间的MATLAB版本重写序列文件。

版本历史

在R2014b中引入