Copiare dati in Spark
Prima di poter fare qualsiasi lavoro reale con Spark, devi caricarci i tuoi dati. sparklyr offre funzioni come spark_read_csv() per leggere un file CSV in Spark. In generale, è utile poter copiare dati da R a Spark. Questo si fa con la funzione copy_to() di dplyr. Attenzione: copiare dati è intrinsecamente lento. Anzi, gran parte delle strategie per ottimizzare le prestazioni con insiemi di dati molto grandi consiste proprio nel evitare di copiare i dati da un luogo all’altro.
copy_to() richiede due argomenti: una connessione a Spark (dest) e un data frame (df) da copiare su Spark.
Una volta copiati i dati in Spark, potresti voler verificare che tutto sia andato a buon fine. Puoi vedere l’elenco di tutti i data frame presenti in Spark con src_tbls(), che prende semplicemente una connessione a Spark come argomento (x).
Nel corso esplorerai i metadati dei brani del Million Song Dataset. Anche se Spark gestisce tranquillamente ben oltre un milione di righe, per mantenere le cose semplici e reattive userai un sottoinsieme da mille tracce. Per chiarire la terminologia: una traccia corrisponde a una riga dell’insieme di dati. Per il tuo insieme di mille tracce, è la stessa cosa di canzone (anche se il dataset completo da un milione di righe conteneva alcuni duplicati di canzoni).
Questo esercizio fa parte del corso
Introduzione a Spark con sparklyr in R
Istruzioni dell'esercizio
track_metadata, che contiene il titolo del brano, il nome dell’artista e altri metadati per 1.000 tracce, è già stato definito nel tuo workspace.
- Usa
str()per esplorare l’insieme di datitrack_metadata. - Connettiti al tuo cluster Spark locale, salvando la connessione in
spark_conn. - Copia
track_metadatanel cluster Spark usandocopy_to(). - Verifica quali data frame sono disponibili in Spark usando
src_tbls(). - Disconnettiti da Spark.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Load dplyr
___
# Explore track_metadata structure
___
# Connect to your Spark cluster
spark_conn <- spark_connect("___")
# Copy track_metadata to Spark
track_metadata_tbl <- ___(___, ___, overwrite = TRUE)
# List the data frames available in Spark
___(___)
# Disconnect from Spark
spark_disconnect(___)