add
キーと値の 1 つのペアを KeyValueStore に追加
説明
例
map 関数および reduce 関数で add を使用して、データを中間および最終の KeyValueStore に渡します。この例では、入力を出力に直接渡す恒等 map 関数および reduce 関数を使用します。map 関数および reduce 関数は例の最後にローカル関数としてリストされます。
inds = tabularTextDatastore('airlinesmall.csv','SelectedVariableNames','ArrDelay','TreatAsMissing','NA'); preview(inds)
ans=8×1 table
ArrDelay
________
8
8
21
13
4
59
3
11
outds = mapreduce(inds,@myMapper,@myReducer,mapreducer(0));
******************************** * MAPREDUCE PROGRESS * ******************************** Map 0% Reduce 0% Map 16% Reduce 0% Map 32% Reduce 0% Map 48% Reduce 0% Map 65% Reduce 0% Map 81% Reduce 0% Map 97% Reduce 0% Map 100% Reduce 0% Map 100% Reduce 100%
readall(outds)
ans=1×2 table
Key Value
____________ _________________
{'ArrDelay'} {123523×1 double}
ローカル関数
function myMapper(data,info,intermKV) add(intermKV, 'ArrDelay',data.ArrDelay); end function myReducer(key,intermValIter,outKV) data = getnext(intermValIter); while hasnext(intermValIter) data = [data; getnext(intermValIter)]; end add(outKV,key,data); end
入力引数
キーと値のペアのストレージ オブジェクト。KeyValueStore オブジェクトとして指定します。KeyValueStore オブジェクトは、関数 mapreduce の実行時に自動的に作成されます。
map 関数では、中間の
KeyValueStoreオブジェクトの名前をmyMapper(data, info, intermKVStore)の 3 番目の入力引数として指定します。中間のキーと値のペアを追加するには、それと同じ変数名を map 関数のaddまたはaddmultiで使用します。reduce 関数では、最終の
KeyValueStoreオブジェクトの名前をmyReducer(intermKey, intermValIter, outKVStore)の 3 番目の入力引数として指定します。最終のキーと値のペアを追加するには、それと同じ変数名を reduce 関数のaddまたはaddmultiで使用します。
詳細については、KeyValueStore を参照してください。
キー。数値スカラー、文字ベクトルまたは string として指定します。
map 関数で追加するキーはすべて同じクラスでなければなりません。reduce 関数で追加するキーも同じクラスでなければなりませんが、map 関数で追加するキーとは別のクラスでもかまいません。
数値キーに NaN、複素数、論理値、スパースは使用できません。
例: add(intermKVStore,'Sum',sum(X)) は、map 関数の中間の KeyValueStore オブジェクト (名前 intermKVStore) にキーと値のペアを追加します。
例: add(outKVStore,'Stats',[mean(X) max(X) min(X) var(X) std(X)]) は、reduce 関数の最終の KeyValueStore オブジェクト (名前 outKVStore) にキーと値のペアを追加します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string
値。いずれかの MATLAB オブジェクトとして指定します。これには、MATLAB のすべての有効なデータ型が含まれます。
reduce 関数で追加できる値のタイプは mapreduce の OutputType 引数によって異なります。
OutputTypeが'Binary'(既定) の場合は、reduce 関数で任意の MATLAB オブジェクトを追加できます。OutputTypeが'TabularText'の場合、関数addを使用すると reduce 関数により数値スカラー、文字ベクトルまたは string スカラーの値を追加できます。さらに、関数addmultiを使用すると、数値ベクトル、文字ベクトルの cell ベクトル、数値スカラーの cell ベクトル、または string 配列を使用して複数の値を追加できます。いずれの場合も、数値をNaN、複素数、論理値、スパースにすることはできません。
メモ
上記のキーと値のペアの要件は、mapreduce を使用する製品によって異なる場合があります。使用する製品のドキュメントで、キーと値のペアに関する製品固有の要件を確認してください。
例: add(intermKVStore,'Sum',sum(X)) は、キーのペアの値として単一のスカラー値を指定します。
例: add(outKVStore,'Stats',[mean(X) max(X) min(X) var(X) std(X)]) は、キーのペアの値として数値配列を指定します。
ヒント
mapreduceの実行時間が長くなることがあるため、ループ内ではaddを使用しないことをお勧めします。代わりに、cell 配列を使用して複数の値をまとめ (可能な場合はベクトル化演算を使用)、単一のaddmultiの呼び出しを使用してください。
バージョン履歴
R2014b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)