Bắt đầu ngayBắt đầu miễn phí

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.

A semi join, explained using table of colors.

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

Xem khóa học

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_tblartist_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ào joined.
  • 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?
___
Chỉnh sửa và Chạy Mã