add
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}
로컬 함수(Local Function)
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
객체로 지정됩니다. mapreduce
함수는 실행 중에 자동으로 KeyValueStore
객체를 생성합니다.
map 함수에서 중간
KeyValueStore
객체의 이름은 map 함수myMapper(data, info, intermKVStore)
에 대한 세 번째 입력 인수입니다. map 함수에서add
나addmulti
를 사용하여 중간 키-값 쌍을 추가하려면 이와 동일한 변수 이름을 사용하십시오.reduce 함수에서 최종
KeyValueStore
객체의 이름은 reduce 함수myReducer(intermKey, intermValIter, outKVStore)
에 대한 세 번째 입력 인수입니다. 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 데이터형이 포함됩니다.
mapreduce
의 OutputType
인수는 reduce 함수가 추가할 수 있는 값의 유형에 영향을 미칩니다.
OutputType
이'Binary'
(디폴트)인 경우 reduce 함수는 어떤 MATLAB 객체든 추가할 수 있습니다.OutputType
이'TabularText'
인 경우 reduce 함수가 추가하는 값은add
함수를 사용할 때 숫자형 스칼라, 문자형 벡터 또는 string형 스칼라일 수 있습니다.addmulti
함수를 사용하여 숫자형 벡터, 문자형 벡터로 구성된 셀형 벡터, 숫자형 스칼라로 구성된 셀형 벡터 또는 string형 배열을 포함하는 여러 값을 추가할 수도 있습니다. 두 경우 모두 숫자형 값은NaN
, 복소수형, 논리형, 희소 형식일 수 없습니다.
참고
다른 제품에서 mapreduce를 사용할 경우 위의 키-값 쌍 요구 사항이 다를 수 있습니다. 제품별 키-값 쌍 요구 사항을 알아보려면 해당 제품의 설명서를 참조하십시오.
예: add(intermKVStore,'Sum',sum(X))
는 키와 쌍을 이룰 단일 스칼라 값을 지정합니다.
예: add(outKVStore,'Stats',[mean(X) max(X) min(X) var(X) std(X)])
는 숫자형 배열을 키와 쌍을 이룰 값으로 지정합니다.
팁
add
를 루프에서 사용하지 마십시오. 이 경우mapreduce
실행 시간에 부정적인 영향을 미칠 수 있습니다. 대신, 셀형 배열을 사용하여 여러 값을 수집하고(가능한 경우 벡터화된 연산 사용)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.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 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)