主要内容

addmulti

将多个键值对添加到keyvaluestore

描述

例子

addmulti (kvstore.添加多个键值对kvstore.,这是一个keyvaluestore.中创建mapreduce执行。使用addmulti在map或reduce函数中,为使用mapreduce存储中间或最终键值对信息。

例子

全部收缩

使用添加addmulti在map和reduce函数中传递数据到中间和最终keyvaluestore.。此示例使用身份映射并减少将输入直接传递到输出的函数。映射和缩小函数在示例的末尾列出了本地函数。

inds = tabulartextdataStore(“airlinesmall.csv”'selectedvariamblenames'......{“ArrDelay”'depdelay'},'尾声'“NA”);预览(INDS)
ans =.8×2表ArrDelay DepDelay ________ ________ 8 12 8 1 21 20 13 12 4 -1 59 63 3 -2 11 -1
outds = mapreduce(inds,@ mymapper,@ myreducer,mapreducer(0));
******************************** * mapreduce进展* ********************************地图0%减少0%地图16%减少0%地图32%减少0%地图48%减少0%地图65%减少0%地图81%减少0%图97%减少0%图100%减少0%图100%减少50%图100%减少100%
readall (outds)
ans =.2×2表键值  ____________ _________________ {' ArrDelay’}{123523 x1双}{‘DepDelay} {123523 x1双}

本地功能

函数MyMapper(数据,信息,Intermkv)AddMulti(Intermkv,{“ArrDelay”'depdelay'},{data.arrdelay data.depdelay});结尾函数myReducer(key,Intermvaliter,Outkv)数据= GetNext(Intermvalirit);hasnext(Intermvaliter)数据= [数据;getNext(Intermvaliter)];结尾添加(Outkv,键,数据);结尾

输入参数

全部收缩

键值对存储对象,指定为akeyvaluestore.目的。这mapreduce函数自动创建keyvaluestore.对象在执行期间:

  • 在地图函数中,中间的名称keyvaluestore.对象是地图函数的第三个输入参数,关联(数据、信息、intermKVStore)。使用相同的变量名称添加中间键值对添加addmulti在地图功能中。

  • 在缩小功能中,最终的名称keyvaluestore.对象是减少函数的第三个输入参数,myreducer(Intermkey,Intermvaliter,Outkvstore)。使用相同的变量名添加最终的键值对添加addmulti在缩小功能中。

有关更多信息,请参见keyvaluestore.

键,指定为数字标量,数字矢量,字符向量,字符串数组,字符向量的单元格矢量,或数字标量的单元格向量。如果键是数字矢量,单元格向量或字符串数​​组,则每个条目指定不同的密钥。

地图函数添加的所有键都必须具有相同的类。由reduce函数添加的键也必须具有相同的类,但该类可以与地图函数添加的键的类别不同。

数字键不能,复杂,逻辑或稀疏。

例子:addmulti (intermKVStore{'和';“数”;“方差”},{总和(X);元素个数(X);var (X)})添加三个键值对到一个中间值keyvaluestore.对象(命名为Intermkvstore.),使用单元格向量指定键。

例子:addmulti(intermKVStore,[1 2 3 4],{sum(X);意味着(X);马克斯(X);分钟(X)})将四个键值对添加到一个中间值keyvaluestore.使用数字向量的对象指定键。

例子:AddMulti(OutkVstore,'stats',{[均值(x)max(x)min(x)var(x)std(x)]})向final添加单个键值对keyvaluestore.对象(命名为outkvstore.)使用字符向量作为键。

数据类型:单身的|双倍的|INT8.|int16|int32|INT64.|uint8.|uint16|UINT32|UINT64|字符|细绳

值,指定为单元格数组。单元格数组中的每个条目指定键-值对中的值,因此元素个数(值)必须等于键的数目。单元数组中的条目可以是任何MATLAB®对象,包括所有有效的MATLAB数据类型。

OutputType.的观点mapreduce影响缩小功能可以添加的值类型:

  • 如果是OutputType.'二进制'(默认值),那么由reduce函数添加的值可以是任何MATLAB对象。

  • 如果是OutputType.“TabularText”然后,在使用时,减少函数添加的值可以是数字标量,字符向量或字符串标量添加功能。此外,您可以使用addmulti使用数字矢量,字符向量的单元格矢量添加多个值,数字标量的单元格矢量或字符串数​​组。在每种情况下,数字值都不能,复杂,逻辑或稀疏。

笔记

当使用其他带有mapreduce的产品时,上述键-值对需求可能会有所不同。s manbetx 845请参阅相应产品的文档,以获得特定于产品的键-值对需求。

例子:addmulti (intermKVStore{'和';“数”;“方差”},{总和(X);元素个数(X);var (X)})添加三个键值对到一个中间值keyvaluestore.对象命名Intermkvstore.

例子:addmulti(intermKVStore,[1 2 3 4],{sum(X);意味着(X);马克斯(X);分钟(X)})将四个键值对添加到一个中间值keyvaluestore.使用单元格向量的。

例子:AddMulti(OutkVstore,'stats',{[均值(x)max(x)min(x)var(x)std(x)]})向final添加单个键值对keyvaluestore.对象命名outkvstore.

例子:AddMulti(OutkVstore,{距离'的时间'},{table.distance table.time})使用表中的变量添加两个键值对以指定值。

提示

  • 避免使用添加在一个循环中,因为它可以产生负面影响mapreduce执行时间处理时间。相反,使用单元阵列收集多个值(如果可能的话,使用矢量化操作)并使用单个呼叫addmulti

介绍了R2014b