Semi join
I semi join sono l’opposto degli anti join: un anti-anti join, se vuoi.
Un semi join restituisce le righe della prima tabella per le quali riesce a trovare una corrispondenza nella seconda tabella. Il principio è illustrato in questo diagramma.

La sintassi è la stessa degli altri tipi di join; basta sostituire la funzione di join con semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Avrai notato che i risultati di un semi join, sommati a quelli di un anti join, restituiscono la tabella originale. Quindi, indipendentemente dal contenuto delle tabelle o da come le unisci, semi_join(A, B) più anti_join(A, B) restituirà A (magari con le righe in un ordine diverso).
Questo esercizio fa parte del corso
Introduzione a Spark con sparklyr in R
Istruzioni dell'esercizio
Una connessione Spark è già stata creata come 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 semi join per unire i termini degli artisti ai metadati delle tracce tramite la colonna
artist_id. Assegna il risultato ajoined. - Usa
sdf_dim()per determinare quante righe e colonne ci sono nella tabella unita.
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
# Semi join artist terms to track metadata by artist_id
joined <- ___
# How many rows and columns are in the joined table?
___