addmulti
KeyValueStore에 여러 개의 키-값 쌍 추가
설명
예제
KeyValueStore에 여러 개의 키/값 쌍 추가하기
map 함수와 reduce 함수에 add
와 addmulti
를 사용하여 중간과 최종 KeyValueStore
로 데이터를 전달합니다. 이 예제에서는 입력값을 바로 출력값으로 전달하는 항등 함수 map과 reduce를 사용합니다. map 함수와 reduce 함수는 예제 끝에 로컬 함수로 나와 있습니다.
inds = tabularTextDatastore('airlinesmall.csv','SelectedVariableNames',... {'ArrDelay','DepDelay'},'TreatAsMissing','NA'); preview(inds)
ans=8×2 table
ArrDelay DepDelay
________ ________
8 12
8 1
21 20
13 12
4 -1
59 63
3 -2
11 -1
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 50% Map 100% Reduce 100%
readall(outds)
ans=2×2 table
Key Value
____________ _________________
{'ArrDelay'} {123523x1 double}
{'DepDelay'} {123523x1 double}
로컬 함수(Local Function)
function myMapper(data,info,intermKV) addmulti(intermKV,{'ArrDelay' 'DepDelay'},{data.ArrDelay data.DepDelay}); end function myReducer(key,intermValIter,outKV) data = getnext(intermValIter); while hasnext(intermValIter) data = [data; getnext(intermValIter)]; end add(outKV,key,data); end
입력 인수
KVStore
— 키-값 쌍 저장공간 객체
KeyValueStore
객체
키-값 쌍 저장공간 객체로, KeyValueStore
객체로 지정됩니다. mapreduce
함수는 실행 중에 자동으로 KeyValueStore
객체를 생성합니다.
map 함수에서 중간
KeyValueStore
객체의 이름은 map 함수myMapper(data, info, intermKVStore)
에 대한 세 번째 입력 인수입니다. map 함수에서add
나addmulti
를 사용하여 중간 키-값 쌍을 추가하려면 이와 동일한 변수 이름을 사용하십시오.reduce 함수에서 최종
KeyValueStore
객체의 이름은 reduce 함수myReducer(intermKey, intermValIter, outKVStore)
에 대한 세 번째 입력 인수입니다. reduce 함수에서add
나addmulti
를 사용하여 최종 키-값 쌍을 추가하려면 이와 동일한 변수 이름을 사용하십시오.
자세한 내용은 KeyValueStore
를 참조하십시오.
keys
— 키
숫자형 스칼라 | 숫자형 벡터 | 문자형 벡터 | string형 배열 | 문자형 벡터로 구성된 셀형 벡터 | 숫자형 스칼라로 구성된 셀형 벡터
키로, 숫자형 스칼라, 숫자형 벡터, 문자형 벡터, string형 배열, 문자형 벡터로 구성된 셀형 벡터 또는 숫자형 스칼라로 구성된 셀형 벡터로 지정됩니다. 키가 숫자형 벡터, 셀형 벡터 또는 string형 배열이면 각 항목은 다른 키를 지정합니다.
map 함수에 의해 추가된 모든 키는 동일한 클래스를 가져야 합니다. reduce 함수에 의해 추가된 키도 동일한 클래스를 가져야 하지만 이 클래스는 map 함수에 의해 추가된 키의 클래스와 다를 수 있습니다.
숫자형 키는 NaN
, 복소수형, 논리형, 희소 형식일 수 없습니다.
예: addmulti(intermKVStore,{'Sum'; 'Count'; 'Variance'},{sum(X); numel(X); var(X)})
는 키를 지정하는 셀형 벡터를 사용하여 중간 KeyValueStore
객체(intermKVStore
로 명명)에 세 개의 키-값 쌍을 추가합니다.
예: addmulti(intermKVStore,[1 2 3 4],{sum(X); mean(X); max(X); min(X)})
는 키를 지정하는 숫자형 벡터를 사용하여 중간 KeyValueStore
객체에 네 개의 키-값 쌍을 추가합니다.
예: addmulti(outKVStore,'Stats',{[mean(X) max(X) min(X) var(X) std(X)]})
는 문자형 벡터를 키로 사용하여 최종 KeyValueStore
객체(outKVStore
로 명명)에 단일 키-값 쌍을 추가합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| char
| string
values
— 값
셀형 배열
값으로, 셀형 배열로 지정됩니다. 셀형 배열의 각 항목은 키-값 쌍의 값을 지정하므로, numel(values)
는 키의 개수와 같아야 합니다. 셀형 배열의 항목은 모든 유효한 MATLAB® 데이터형을 포함하는 모든 MATLAB 객체일 수 있습니다.
mapreduce
의 OutputType
인수는 reduce 함수가 추가할 수 있는 값의 유형에 영향을 미칩니다.
OutputType
이'Binary'
(디폴트)인 경우 reduce 함수는 어떤 MATLAB 객체든 추가할 수 있습니다.OutputType
이'TabularText'
인 경우 reduce 함수가 추가하는 값은add
함수를 사용할 때 숫자형 스칼라, 문자형 벡터 또는 string형 스칼라일 수 있습니다.addmulti
함수를 사용하여 숫자형 벡터, 문자형 벡터로 구성된 셀형 벡터, 숫자형 스칼라로 구성된 셀형 벡터 또는 string형 배열을 포함하는 여러 값을 추가할 수도 있습니다. 두 경우 모두 숫자형 값은NaN
, 복소수형, 논리형, 희소 형식일 수 없습니다.
참고
다른 제품에서 mapreduce를 사용할 경우 위의 키-값 쌍 요구 사항이 다를 수 있습니다. 제품별 키-값 쌍 요구 사항을 알아보려면 해당 제품의 설명서를 참조하십시오.
예: addmulti(intermKVStore,{'Sum'; 'Count'; 'Variance'},{sum(X); numel(X); var(X)})
는 intermKVStore
라는 중간 KeyValueStore
객체에 세 개의 키-값 쌍을 추가합니다.
예: addmulti(intermKVStore,[1 2 3 4],{sum(X); mean(X); max(X); min(X)})
는 셀형 벡터를 사용하여 중간 KeyValueStore
객체에 네 개의 키-값 쌍을 추가합니다.
예: addmulti(outKVStore,'Stats',{[mean(X) max(X) min(X) var(X) std(X)]})
는 outKVStore
라는 최종 KeyValueStore
객체에 단일 키-값 쌍을 추가합니다.
예: addmulti(outKVStore,{'Distance' 'Time'},{table.Distance table.Time})
은 값을 지정하는 테이블의 변수를 사용하여 두 개의 키-값 쌍을 추가합니다.
팁
add
를 루프에서 사용하지 마십시오. 이 경우mapreduce
실행 시간에 부정적인 영향을 미칠 수 있습니다. 대신, 셀형 배열을 사용하여 여러 값을 수집하고(가능한 경우 벡터화된 연산 사용)addmulti
를 한 번 호출하십시오.
버전 내역
R2014b에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)