Semi join
Semi join là đối nghịch với anti join: bạn có thể coi là một anti-anti join.
Semi join trả về các hàng của bảng thứ nhất nơi nó có thể tìm thấy bản ghi khớp trong bảng thứ hai. Nguyên lý được minh họa trong sơ đồ này.

Cú pháp giống hệt các kiểu join khác; chỉ cần thay hàm join kia bằng semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Bạn có thể nhận ra rằng kết quả của một semi join cộng với kết quả của một anti join sẽ cho ra bảng gốc. Vì vậy, bất kể nội dung bảng hay cách bạn join chúng, semi_join(A, B) cộng với anti_join(A, B) sẽ trả về A (mặc dù có thể thứ tự hàng sẽ khác).
Bài tập này là một phần của khóa học
Nhập môn Spark với sparklyr trong R
Hướng dẫn bài tập
Kết nối Spark đã được tạo sẵn dưới tên spark_conn. Các tibble gắn với track metadata và artist terms được lưu trong Spark đã được định nghĩa sẵn lần lượt là track_metadata_tbl và artist_terms_tbl.
- Dùng semi join để nối artist terms vào track metadata theo cột
artist_id. Gán kết quả vàojoined. - Dùng
sdf_dim()để xác định bảng đã join có bao nhiêu hàng và cột.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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?
___