clc;
clear all;
close all;
% Big Data Analytics with Matlab
%============== Datastore =================
% Un datastore è un oggetto messo a disposizione
% da Matlab per la lettura di un singolo file o
% più dati. Il datastore agisce come una
% repository di dati che possiedono la stessa
% struttura e formato (ogni file nel datastore deve
% contenere dati dello stesso tipo e nello stesso
% "ordine", separati dallo stesso delimitatore.
%============================================
%============================================
% Creiamo ad esempio un datastore con i file di
% airline.csv, i quali includono partenze e arrivi
% di ogni compagnia aerea.
%============================================
ds = datastore('airlinesmall.csv');
ds
%============================================
% E' facile che nei database ci siano dei dati
% mancanti per cui è sempre meglio specificare
% come sono salvati, in modo da farli "trattare"
% in modo diverso.
%============================================
ds.TreatAsMissing = 'NA';
%============================================
% Da tutta la tabella dei dati assumiamo di
% concentrarci solamente su una variabile
% e vediamo di fare un po' di statistica su
% questa.
%============================================
ds.SelectedVariableNames = {'Distance'};
%============================================
% Il bello dei datastore è che non è necessario
% caricarli tutti in memoria subito ma possiamo
% dare anche solo una sbirciatina con i preview
%============================================
preview = preview(ds) % da notare l'assenza del ;
% per farlo apparire in output
%============================================
% Ora possiamo lanciare il nostro MapReduce per il
% calcolo della media delle distanze tra voli.
%============================================
outds = mapreduce(ds, @MeanDistMapFun, @MeanDistReduceFun);
% e per vedere il risultato
readall(outds)