Inizia subitoInizia gratis

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.

A semi join, explained using table of colors.

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

Visualizza corso

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 a joined.
  • 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?
___
Modifica ed esegui il codice