ComeçarComece de graça

Semi joins

Semi joins são o oposto de anti joins: um anti-anti join, por assim dizer.

Um semi join retorna as linhas da primeira tabela onde ele consegue encontrar correspondência na segunda tabela. O princípio é mostrado neste diagrama.

A semi join, explained using table of colors.

A sintaxe é a mesma dos outros tipos de join; basta trocar a função de join pela semi_join()

semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))

Você talvez tenha reparado que os resultados de um semi join somados aos resultados de um anti join recuperam a tabela original. Então, independentemente do conteúdo das tabelas ou de como você as une, semi_join(A, B) mais anti_join(A, B) retornará A (talvez com as linhas em uma ordem diferente).

Este exercício faz parte do curso

Introdução ao Spark com sparklyr em R

Ver curso

Instruções do exercício

Uma conexão Spark já foi criada para você como spark_conn. Tibbles conectados aos metadados das faixas e aos termos dos artistas armazenados no Spark foram pré-definidos como track_metadata_tbl e artist_terms_tbl, respectivamente.

  • Use um semi join para unir os termos dos artistas aos metadados das faixas pela coluna artist_id. Atribua o resultado a joined.
  • 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

# Semi join artist terms to track metadata by artist_id
joined <- ___

# How many rows and columns are in the joined table?
___
Editar e executar o código