세미 조인
세미 조인은 안티 조인의 반대입니다. 말하자면 "안티의 안티 조인"이죠.
세미 조인은 두 번째 테이블에서 일치하는 항목을 찾을 수 있는 경우에만 첫 번째 테이블의 행을 반환합니다. 이 원리는 아래 도표에 나타나 있습니다.

문법은 다른 조인과 동일하며, 조인 함수만 semi_join()으로 바꾸면 됩니다.
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
세미 조인의 결과와 안티 조인의 결과를 합치면 원래 테이블이 된다는 점을 눈치채셨을 거예요. 따라서 테이블의 내용이나 조인 방식과 관계없이 semi_join(A, B)에 anti_join(A, B)를 더하면 A가 반환됩니다(다만 행의 순서는 달라질 수 있어요).
이 연습은 강의의 일부입니다
R에서 sparklyr로 시작하는 Spark
연습 안내
spark_conn으로 Spark 연결이 준비되어 있습니다. Spark에 저장된 트랙 메타데이터와 아티스트 용어에 연결된 티블은 각각 track_metadata_tbl, artist_terms_tbl로 미리 정의되어 있어요.
artist_id열을 기준으로 세미 조인을 사용해 아티스트 용어를 트랙 메타데이터와 조인하세요. 결과를joined에 할당하세요.sdf_dim()을 사용해 조인된 테이블의 행과 열이 각각 몇 개인지 확인하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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?
___