Semi join
Semi join adalah kebalikan dari anti join: bisa dibilang "anti anti join".
Sebuah semi join mengembalikan baris dari tabel pertama di mana ia dapat menemukan pasangan yang cocok di tabel kedua. Prinsipnya ditunjukkan pada diagram berikut.

Sintaksnya sama seperti tipe join lainnya; cukup ganti fungsi join tersebut dengan semi_join()
semi_join(a_tibble, another_tibble, by = c("id_col1", "id_col2"))
Anda mungkin menyadari bahwa hasil semi join ditambah hasil anti join akan menghasilkan tabel asli. Jadi, terlepas dari isi tabel atau cara Anda menggabungkannya, semi_join(A, B) ditambah anti_join(A, B) akan mengembalikan A (meskipun urutan barisnya bisa berbeda).
Latihan ini merupakan bagian dari kursus
Pengantar Spark dengan sparklyr di R
Instruksi latihan
Sambungan Spark telah dibuat untuk Anda sebagai spark_conn. Tibble yang terhubung ke metadata trek dan istilah artis yang disimpan di Spark telah didefinisikan sebelumnya masing-masing sebagai track_metadata_tbl dan artist_terms_tbl.
- Gunakan semi join untuk menggabungkan istilah artis dengan metadata trek berdasarkan kolom
artist_id. Simpan hasilnya kejoined. - Gunakan
sdf_dim()untuk menentukan berapa banyak baris dan kolom pada tabel hasil gabungan.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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?
___