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)