主要内容

addmulti

向KeyValueStore添加多个键值对

描述

例子

addmulti (KVStore添加多个键值对KVStore,也就是KeyValueStore中创建mapreduce执行。使用addmulti在map或reduce函数中编写供使用mapreduce存储中间或最终键值对信息。

例子

全部折叠

使用添加addmulti在map和reduce函数中传递数据到中间和最终KeyValueStore.本示例使用标识映射和reduce函数,将输入直接传递到输出。在示例的最后列出了map和reduce函数作为局部函数。

第1 = tabularTextDatastore (“airlinesmall.csv”“SelectedVariableNames”...“ArrDelay”“DepDelay”},“TreatAsMissing”“NA”);预览(第1)
ans =8×2表ArrDelay DepDelay ________ ________ 8 12 8 1 21 20 13 12 4 -1 59 63 3 -2 11 -1
outds = mapreduce(第1、@myMapper @myReducer, mapreduce (0));
******************************** * MAPREDUCE的进展  * ******************************** 地图地图16%减少0% 32% 0%减少0%减少0%地图48%减少0% 65%减少0%地图地图97%减少0% 100% 81%减少0%减少0%地图100%减少50% 100%减少100%
readall (outds)
ans =2×2表键值  ____________ _________________ {' ArrDelay’}{123523 x1双}{‘DepDelay} {123523 x1双}

本地函数

函数关联数据、信息、intermKV addmulti (intermKV, {“ArrDelay”“DepDelay”},{数据。ArrDelay data.DepDelay});结束函数myReducer(key,intermValIter,outKV) data = getnext(intermValIter); / /验证数据hasnext(intermValIter) data = [data;getnext (intermValIter)];结束添加(outKV、关键数据);结束

输入参数

全部折叠

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

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

  • 在reduce函数中,final的名称KeyValueStore对象是reduce函数的第三个输入参数,myReducer (intermKey intermValIter outKVStore).使用相同的变量名来添加最终的键值对添加addmulti在reduce函数中。

有关更多信息,请参见KeyValueStore

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

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

数字键不能是、复杂的、逻辑的或稀疏的。

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

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

例子:addmulti(outKVStore,'Stats',{[mean(X) max(X) min(X) var(X) std(X)]})向final添加单个键值对KeyValueStore对象(命名outKVStore),使用字符向量作为键。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

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

OutputType的观点mapreduce影响reduce函数可以添加的值的类型:

  • 如果OutputType“二元”(默认值),则reduce函数所增加的值可以是任何MATLAB对象。

  • 如果OutputType“TabularText”,则reduce函数添加的值可以是数字标量、字符向量或字符串标量添加函数。此外,您可以使用addmulti函数用数字向量、字符向量的单元格向量、数字标量的单元格向量或字符串数组添加多个值。在每种情况下,数值不能为、复杂的、逻辑的或稀疏的。

请注意

在使用mapreduce的其他产品时,上述键值对需求可能会有所不同。下载188bet金宝搏请参阅有关适当产品的文档,以获得特定于产品的键值对需求。

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

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

例子:addmulti(outKVStore,'Stats',{[mean(X) max(X) min(X) var(X) std(X)]})向final添加单个键值对KeyValueStore对象命名outKVStore

例子:addmulti (outKVStore{‘距离’‘时间’},{表。距离table.Time})使用表中的变量添加两个键值对以指定值。

提示

  • 避免使用添加在循环中,因为它会产生负面影响mapreduce执行时间。相反,使用单元格数组来收集多个值(如果可能的话,使用向量化操作)并使用单个调用addmulti

介绍了R2014b