Big data, tiny tibble
Nel precedente esercizio, quando hai copiato i dati in Spark, copy_to() ha restituito un valore. Questo valore di ritorno è un tipo speciale di tibble() che non contiene dati propri. Per spiegare questo comportamento, serve sapere qualcosa su come i pacchetti del tidyverse memorizzano i dati. Di solito i tibble sono solo una variante dei data.frame con un metodo di stampa più gradevole. Tuttavia, dplyr permette anche di rappresentare dati provenienti da una sorgente remota, come database e – come in questo caso – Spark. Per insiemi di dati remoti, l’oggetto tibble memorizza semplicemente una connessione ai dati remoti. Ne parleremo in dettaglio più avanti, ma il punto importante ora è che, anche se il dataset è grande, la dimensione dell’oggetto tibble è piccola.
Dal lato Spark, i dati sono memorizzati in una variabile chiamata DataFrame. È più o meno l’equivalente diretto del tipo di variabile data.frame di R. (Anche se i tipi di colonna hanno nomi leggermente diversi: per esempio le colonne numeric sono chiamate colonne DoubleType.) Nel corso useremo il termine data frame, a meno che non serva chiarire la differenza tra data.frame e DataFrame. Poiché questi tipi sono anche analoghi alle tabelle di database, a volte useremo anche il termine tabella per descrivere questo tipo di dati rettangolari.
Chiamare tbl() con una connessione Spark e una stringa che indica il nome del data frame di Spark restituirà lo stesso oggetto tibble ottenuto quando hai usato copy_to().
Uno strumento utile che vedrai in questo esercizio è la funzione object_size() del pacchetto pryr. Questa ti mostra quanta memoria occupa un oggetto.
Questo esercizio fa parte del corso
Introduzione a Spark con sparklyr in R
Istruzioni dell'esercizio
È stata creata per te una connessione a Spark come spark_conn. I metadati di 1.000 tracce sono archiviati nel cluster Spark nella tabella "track_metadata".
- Collega la tabella
"track_metadata"usandotbl(). Assegna il risultato atrack_metadata_tbl. - Verifica quanto è grande il dataset usando
dim()sutrack_metadata_tbl. - Verifica quanto è piccolo il tibble usando
object_size()sutrack_metadata_tbl.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")
# See how big the dataset is
___(___)
# See how small the tibble is
___(___)