Semi joins
Los semi joins son lo opuesto a los anti joins: un anti-anti join, si lo prefieres.
Un semi join devuelve las filas de la primera tabla donde SÍ puede encontrar una coincidencia en la segunda. El principio se muestra en este diagrama.

La sintaxis es la misma que para otros tipos de joins; simplemente sustituye la otra función de join por semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Quizá te hayas fijado en que los resultados de un semi join más los de un anti join te devuelven la tabla original. Así, independientemente del contenido de las tablas o de cómo las unas, semi_join(A, B) más anti_join(A, B) devolverán A (aunque quizá con las filas en un orden distinto).
Este ejercicio forma parte del curso
Introducción a Spark con sparklyr en R
Instrucciones del ejercicio
Ya tienes creada una conexión de Spark como spark_conn. Los tibbles vinculados a los metadatos de pistas y a los términos de artistas almacenados en Spark se han predefinido como track_metadata_tbl y artist_terms_tbl, respectivamente.
- Usa un semi join para unir los términos de artistas con los metadatos de pistas por la columna
artist_id. Asigna el resultado ajoined. - Usa
sdf_dim()para determinar cuántas filas y columnas hay en la tabla unida.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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?
___