Inizia subitoInizia gratis

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

Visualizza corso

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" usando tbl(). Assegna il risultato a track_metadata_tbl.
  • Verifica quanto è grande il dataset usando dim() su track_metadata_tbl.
  • Verifica quanto è piccolo il tibble usando object_size() su track_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
___(___)
Modifica ed esegui il codice