主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

KeyValueStore

キーと値のペアを保存してmapreduceで使用

説明

関数mapreduceは,実行中にKeyValueStoreオブジェクトを自動的に作成し,それを使用して地图関数と减少関数によって追加されたキーと値のペアを保存します。mapreduceを使用するためにKeyValueStoreオブジェクトを明示的に作成する必要はありませんが,地图関数と减少関数でこのオブジェクトを操作するには,オブジェクト関数添加addmultiを使用する必要があります。

作成

関数mapreduceは実行時にKeyValueStoreオブジェクトを自動的に作成します。

オブジェクト関数

添加 キーと値の1つのペアをKeyValueStoreに追加
addmulti キーと値の複数のペアをKeyValueStoreに追加

すべて折りたたむ

次の地图関数は,関数添加を使用してキーと値のペアを中間のKeyValueStoreオブジェクト(intermKVStore1)につずつ追加します。

函数MeanDistMapFun(data, info, intermKVStore) distance = data. distance (~isnan(data. distance));sumLenKey =“sumAndLength”;sumLenValue = [sum(距离),length(距离)];添加(intermKVStore sumLenKey sumLenValue);结束

次の地图関数は,addmultiを使用してキーと値の複数のペアを中間のKeyValueStoreオブジェクト(intermKVStore)に追加します。この地图関数はintermKeys変数から複数のキーを収集して,intermVals変数から複数の値を収集していることに注意してください。これにより,addmultiを一度呼び出すだけ,ですべてのキーと値のペアが追加されます。添加をループで使用するのではなく,addmultiを一度呼び出すのがベストプラクティスです。

函数meanArrivalDelayByDayMapper(数据、~ intermKVStore)% Mapper函数为MeanByGroupMapReduceExample。版权所有2014 The MathWorks, Inc。% Data是一个n × 2的表:第一列是DayOfWeek,第二列是DayOfWeek%为ArrDelay。首先删除缺失的值。延迟= data.ArrDelay;一天= data.DayOfWeek;notNaN = ~ isnan(延迟);天= (notNaN);延迟=延迟(notNaN);在这个数据块中找到唯一的日子[intermKeys ~, idx] =独特(天,“稳定”);%组延迟idx和应用@grpstatsfun功能到每个组intermVals = accumarray (idx、延迟、大小(intermKeys) @countsum);addmulti (intermKVStore intermKeys intermVals);函数Out = count (x) n = length(x);%数s = (x)总和;%的意思Out = {[n, s]};

参考

トピック

R2014bで導入