Left joins
Além de manipular data frames individuais, o sparklyr permite juntar dois data frames. Uma explicação completa de como unir tabelas usando a sintaxe do dplyr é apresentada no curso Joining Data with dplyr. No restante deste capítulo, você verá alguns exemplos de como fazer isso no Spark.
Um left join pega todos os valores da primeira tabela e procura correspondências na segunda tabela. Se encontrar, adiciona os dados da segunda tabela; se não, adiciona valores ausentes. O princípio é mostrado neste diagrama.

Left joins são um tipo de mutating join, pois simplesmente acrescentam colunas à primeira tabela. Para realizar um left join com sparklyr, chame left_join(), passando dois tibbles e um vetor de caracteres com as colunas pelas quais unir.
left_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Ao descrever essa união em palavras, os nomes das tabelas ficam invertidos. Esta junção seria escrita como "another_tibble é left join em a_tibble".
Este exercício apresenta outro Spark DataFrame contendo termos que descrevem cada artista. Eles variam de termos mais gerais, como "pop", a gêneros mais de nicho, como "swiss hip hop" e "mathgrindcore".
Este exercício faz parte do curso
Introdução ao Spark com sparklyr em R
Instruções do exercício
Uma conexão com o Spark já foi criada para você como spark_conn. Tibbles vinculados aos metadados das faixas e aos termos dos artistas armazenados no Spark foram predefinidos como track_metadata_tbl e artist_terms_tbl, respectivamente.
- Use um left join para unir os termos dos artistas aos metadados das faixas pela coluna
artist_id.- A tabela à qual será feita a união,
track_metadata_tbl, vem primeiro. - A tabela que se une à primeira,
artist_terms_tbl, vem em seguida. - Atribua o resultado a
joined.
- A tabela à qual será feita a união,
- Use
sdf_dim()para determinar quantas linhas e colunas há na tabela resultante.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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?
___