Left join
Oltre a manipolare singoli data frame, sparklyr ti permette di unire due data frame. Una trattazione completa di come unire tabelle usando la sintassi di dplyr è disponibile nel corso Joining Data with dplyr. Nel resto di questo capitolo, vedrai alcuni esempi di come farlo con Spark.
Un left join prende tutti i valori dalla prima tabella e cerca corrispondenze nella seconda. Se trova una corrispondenza, aggiunge i dati della seconda tabella; se non la trova, aggiunge valori mancanti. Il principio è illustrato in questo diagramma.

I left join sono un tipo di mutating join, perché aggiungono semplicemente colonne alla prima tabella. Per eseguire un left join con sparklyr, chiama left_join(), passando due tibble e un vettore di caratteri con le colonne su cui fare il join.
left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Quando descrivi questo join a parole, i nomi delle tabelle si invertono. Questo join si scriverebbe come: "another_tibble è left joinato a a_tibble".
Questo esercizio introduce un altro Spark DataFrame che contiene termini descrittivi per ciascun artista. Si va da termini piuttosto generali, come "pop", a generi più di nicchia come "swiss hip hop" e "mathgrindcore".
Questo esercizio fa parte del corso
Introduzione a Spark con sparklyr in R
Istruzioni dell'esercizio
È già stata creata per te una connessione Spark chiamata spark_conn. I tibble collegati ai metadati delle tracce e ai termini degli artisti archiviati in Spark sono stati predefiniti rispettivamente come track_metadata_tbl e artist_terms_tbl.
- Usa un left join per unire i termini degli artisti ai metadati delle tracce tramite la colonna
artist_id.- La tabella a cui si fa il join,
track_metadata_tbl, viene per prima. - La tabella che si unisce alla prima,
artist_terms_tbl, viene dopo. - Assegna il risultato a
joined.
- La tabella a cui si fa il join,
- Usa
sdf_dim()per determinare quante righe e colonne ci sono nella tabella risultante dal join.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# track_metadata_tbl and artist_terms_tbl have been pre-defined
track_metadata_tbl
artist_terms_tbl
# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)
# How many rows and columns are in the joined table?
___