키-값 데이터가 있는 MAT 파일 읽어오기 및 분석하기
이 예제에서는 mapreduce
의 출력값인 MAT 파일에 키-값 쌍 데이터를 위한 데이터저장소를 생성하는 방법을 보여줍니다. 그런 다음 데이터저장소에 있는 모든 데이터를 읽어온 다음 정렬하는 방법을 보여줍니다. 이 예제에서는 MAT 파일의 데이터가 메모리에 다 담긴다고 가정합니다.
datastore
함수를 사용하여 샘플 파일 mapredout.mat
에서 데이터저장소를 만듭니다. 샘플 파일에는 항공사 코드를 나타내는 고유 키와 함께 해당 항공사에서 실시한 운항 횟수를 나타내는 값이 들어 있습니다.
ds = datastore('mapredout.mat');
datastore
는 KeyValueDatastore
를 반환합니다. datastore
함수는 생성할 데이터저장소의 적합한 유형을 자동으로 결정합니다.
preview
함수를 사용하여 데이터를 미리 봅니다. 이 함수를 사용해도 데이터저장소의 상태에 영향을 주지 않습니다.
preview(ds)
ans=1×2 table
Key Value
______ _________
{'AA'} {[14930]}
readall
함수를 사용하여 ds
의 모든 데이터를 읽어옵니다. readall
함수는 2개의 열(Key
와 Value
)을 가진 테이블을 반환합니다.
T = readall(ds)
T=29×2 table
Key Value
__________ _________
{'AA' } {[14930]}
{'AS' } {[ 2910]}
{'CO' } {[ 8138]}
{'DL' } {[16578]}
{'EA' } {[ 920]}
{'HP' } {[ 3660]}
{'ML (1)'} {[ 69]}
{'NW' } {[10349]}
{'PA (1)'} {[ 318]}
{'PI' } {[ 871]}
{'PS' } {[ 83]}
{'TW' } {[ 3805]}
{'UA' } {[13286]}
{'US' } {[13997]}
{'WN' } {[15931]}
{'AQ' } {[ 154]}
⋮
T
에는 데이터저장소의 모든 항공사 데이터와 운항 데이터가 데이터를 읽어온 순서 그대로 들어 있습니다. 테이블 변수 Key
와 Value
는 셀형 배열입니다.
Value
를 숫자형 배열로 변환합니다.
T.Value = cell2mat(T.Value)
T=29×2 table
Key Value
__________ _____
{'AA' } 14930
{'AS' } 2910
{'CO' } 8138
{'DL' } 16578
{'EA' } 920
{'HP' } 3660
{'ML (1)'} 69
{'NW' } 10349
{'PA (1)'} 318
{'PI' } 871
{'PS' } 83
{'TW' } 3805
{'UA' } 13286
{'US' } 13997
{'WN' } 15931
{'AQ' } 154
⋮
새 이름을 테이블 변수에 할당합니다.
T.Properties.VariableNames = {'Airline','NumFlights'};
T
의 데이터를 운항 횟수를 기준으로 정렬합니다.
T = sortrows(T,'NumFlights','descend')
T=29×2 table
Airline NumFlights
_______ __________
{'DL'} 16578
{'WN'} 15931
{'AA'} 14930
{'US'} 13997
{'UA'} 13286
{'NW'} 10349
{'CO'} 8138
{'MQ'} 3962
{'TW'} 3805
{'HP'} 3660
{'OO'} 3090
{'AS'} 2910
{'XE'} 2357
{'EV'} 1699
{'OH'} 1457
{'FL'} 1263
⋮
정렬된 테이블에 대한 요약 내용을 확인합니다.
summary(T)
Variables: Airline: 29x1 cell array of character vectors NumFlights: 29x1 double Values: Min 69 Median 1457 Max 16578
데이터를 다시 읽어올 수 있도록 데이터저장소를 재설정합니다.
reset(ds)
참고 항목
datastore
| KeyValueDatastore
| tall
| mapreduce