主要内容

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

addmulti

キーと値の複数のペアをKeyValueStoreに追加

説明

addmulti (KVStoreは,キーと値の複数のペアをKVStoremapreduceの実行時に作成されるKeyValueStore)に追加します。addmultiは,中間または最終のキーと値のペアの情報を格納するために,mapreduceで使用する地图関数または减少関数で使用します。

すべて折りたたむ

地图関数および减少関数で添加およびaddmultiを使用して,データを中間および最終のKeyValueStoreに渡します。この例では,入力を出力に直接渡す恒等地图関数および减少関数を使用します。地图関数および减少関数は例の最後にローカル関数としてリストされます。

第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 =[数据;getnext (intermValIter)];结束添加(outKV、关键数据);结束

入力引数

すべて折りたたむ

キーと値のペアのストレージオブジェクト。KeyValueStoreオブジェクトとして指定します。KeyValueStoreオブジェクトは,関数mapreduceの実行時に自動的に作成されます。

  • 地图関数では,中間のKeyValueStoreオブジェクトの名前を关联(数据、信息、intermKVStore)の3番目の入力引数として指定します。中間のキーと値のペアを追加するには,それと同じ変数名を地图関数の添加またはaddmultiで使用します。

  • 减少関数では,最終のKeyValueStoreオブジェクトの名前をmyReducer (intermKey intermValIter outKVStore)の3番目の入力引数として指定します。最終のキーと値のペアを追加するには,それと同じ変数名を减少関数の添加またはaddmultiで使用します。

詳細については,KeyValueStoreを参照してください。

キー。数値スカラー,数値ベクトル,文字ベクトル,字符串配列,文字ベクトルの细胞ベクトル,または数値スカラーの细胞ベクトルとして指定します。キーが数値ベクトル,细胞ベクトルまたは字符串配列の場合は,各要素に異なるキーを指定します。

地图関数で追加するキーはすべて同じクラスでなければなりません。减少関数で追加するキーも同じクラスでなければなりませんが,地图関数で追加するキーとは別のクラスでもかまいません。

数値キーに,複素数,論理値,スパースは使用できません。

例:addmulti (intermKVStore{'和';“数”;“方差”},{总和(X);元素个数(X);var (X)})は、细胞ベクトルでキーを指定して,中間のKeyValueStoreオブジェクトintermKVStoreにキーと値のペアを3つ追加します。

例:addmulti(intermKVStore,[1 2 3 4],{sum(X);意味着(X);马克斯(X);分钟(X)})は,数値ベクトルでキーを指定して,中間のKeyValueStoreオブジェクトにキーと値のペアを4つ追加します。

例:addmulti(outKVStore,'Stats',{[平均(X) max(X) min(X) var(X) std(X)]}))は,文字ベクトルをキーとして使用して,最終のKeyValueStoreオブジェクトoutKVStoreにキーと値のペアを1つ追加します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

値。细胞配列として指定します。细胞配列の各エントリでキーと値のペアの値を指定するため、元素个数(值)がキーの数と等しくなければなりません。细胞配列のエントリは、任意の MATLAB®オブジェクトにすることができます。これには,MATLABのすべての有効なデータ型が含まれます。

减少関数で追加できる値のタイプはmapreduceOutputType引数によって異なります。

  • OutputType“二元”(既定)の場合は,减少関数で任意のMATLABオブジェクトを追加できます。

  • OutputType“TabularText”の場合,関数添加を使用すると减少関数により数値スカラー,文字ベクトルまたは字符串スカラーの値を追加できます。さらに,関数addmultiを使用すると,数値ベクトル,文字ベクトルの细胞ベクトル,数値スカラーの细胞ベクトル,または字符串配列を使用して複数の値を追加できます。いずれの場合も,数値を,複素数,論理値,スパースにすることはできません。

メモ

上記のキーと値のペアの要件は,mapreduceを使用する製品によって異なる場合があります。使用する製品のドキュメントで,キーと値のペアに関する製品固有の要件を確認してください。

例:addmulti (intermKVStore{'和';“数”;“方差”},{总和(X);元素个数(X);var (X)})は,intermKVStoreという名前の中間のKeyValueStoreオブジェクトにキーと値のペアを3つ追加します。

例:addmulti(intermKVStore,[1 2 3 4],{sum(X);意味着(X);马克斯(X);分钟(X)})は、细胞ベクトルを使用して中間のKeyValueStoreオブジェクトにキーと値のペアを4つ追加します。

例:addmulti(outKVStore,'Stats',{[平均(X) max(X) min(X) var(X) std(X)]}))は,outKVStoreという名前の最終のKeyValueStoreオブジェクトにキーと値のペアを1つ追加します。

例:addmulti (outKVStore{‘距离’‘时间’},{表。距离table.Time})は、表の変数で値を指定して,キーと値のペアを2つ追加します。

ヒント

  • mapreduceの実行時間が長くなることがあるため,ループ内では添加を使用しないことをお勧めします。代わりに、细胞配列を使用して複数の値をまとめ(可能な場合はベクトル化演算を使用),単一のaddmultiの呼び出しを使用してください。

R2014bで導入