MATLAB中KeyValueStore函数用法

目录

说明

创建对象

对象函数

示例

将键-值对组添加到 map 函数中的 KeyValueStore

将多个键-值对组添加到 map 函数中的 KeyValueStore


        KeyValueStore函数的功能是存储用于 mapreduce 的键-值对组。

说明

        mapreduce 函数在执行期间自动创建 KeyValueStore 对象,并将其用于存储由 map 和 reduce 函数添加的键-值对组。尽管绝不需要显式创建 KeyValueStore 对象以使用 mapreduce,但需要使用 add 和 addmulti 对象函数在 map 和 reduce 函数中与此对象交互。

创建对象

        mapreduce 函数在执行期间自动创建 KeyValueStore 对象。

对象函数

add向 KeyValueStore 中添加单个键-值对组
addmulti向 KeyValueStore 中添加多个键-值对组

示例

将键-值对组添加到 map 函数中的 KeyValueStore

        下面的 map 函数使用 add 函数将键-值对组添加到中间的 KeyValueStore 对象(名称为 intermKVStore),一次添加一个。

function MeanDistMapFun(data, info, intermKVStore)
    distances = data.Distance(~isnan(data.Distance));
    sumLenKey = 'sumAndLength';
    sumLenValue = [sum(distances), length(distances)];
    add(intermKVStore, sumLenKey, sumLenValue);
end

将多个键-值对组添加到 map 函数中的 KeyValueStore

        下面的 map 函数使用 addmulti 将多个键-值对组添加到中间的 KeyValueStore 对象(名称为 intermKVStore)。请注意,这个 map 函数收集 intermKeys 变量中的多个键以及 intermVals 变量中的多个值。这样调用 addmulti 一次后便可添加所有的键-值对组。最好采用调用 addmulti 一次的方式,而不是在循环中使用 add。

function meanArrivalDelayByDayMapper(data, ~, intermKVStore)
% Mapper function for the MeanByGroupMapReduceExample.

% Copyright 2014 The MathWorks, Inc.

% Data is an n-by-2 table: first column is the DayOfWeek and the second
% is the ArrDelay. Remove missing values first.
delays = data.ArrDelay;
day = data.DayOfWeek;
notNaN =~isnan(delays);
day = day(notNaN);
delays = delays(notNaN);

% find the unique days in this chunk
[intermKeys,~,idx] = unique(day, 'stable');

% group delays by idx and apply @grpstatsfun function to each group
intermVals = accumarray(idx,delays,size(intermKeys),@countsum);
addmulti(intermKVStore,intermKeys,intermVals);

function out = countsum(x)
n = length(x); % count
s = sum(x); % mean
out = {[n, s]};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值