Left joins
Además de manipular data frames individuales, sparklyr te permite unir dos data frames. Puedes encontrar una explicación completa de cómo unir tablas con la sintaxis de dplyr en el curso Joining Data with dplyr. En el resto de este capítulo verás algunos ejemplos de cómo hacerlo en Spark.
Un left join toma todos los valores de la primera tabla y busca coincidencias en la segunda. Si encuentra una coincidencia, añade los datos de la segunda tabla; si no, añade valores ausentes. El principio se ilustra en este diagrama.

Los left joins son un tipo de mutating join, ya que simplemente añaden columnas a la primera tabla. Para realizar un left join con sparklyr, llama a left_join(), pasando dos tibbles y un vector de caracteres con las columnas por las que unir.
left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Cuando lo describes con palabras, los nombres de las tablas se invierten. Esta unión se escribiría como: "another_tibble se left une a a_tibble".
Este ejercicio introduce otro Spark DataFrame con términos que describen a cada artista. Van desde términos bastante generales, como "pop", hasta géneros más nicho como "swiss hip hop" y "mathgrindcore".
Este ejercicio forma parte del curso
Introducción a Spark con sparklyr en R
Instrucciones del ejercicio
Ya tienes creada una conexión a Spark como spark_conn. Los tibbles vinculados a los metadatos de pistas y a los términos de artista almacenados en Spark se han predefinido como track_metadata_tbl y artist_terms_tbl, respectivamente.
- Usa un left join para unir los términos de artista con los metadatos de las pistas por la columna
artist_id.- La tabla a la que se le une,
track_metadata_tbl, va primero. - La tabla que se une a la primera,
artist_terms_tbl, va después. - Asigna el resultado a
joined.
- La tabla a la que se le une,
- 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
# Left join artist terms to track metadata by artist_id
joined <- ___(___, ___, by = ___)
# How many rows and columns are in the joined table?
___