เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

Semi join

Semi join คือสิ่งที่ตรงข้ามกับ anti join กล่าวคือ มันคือ "anti-anti join" นั่นเอง

Semi join จะคืนค่าแถวจากตารางแรกที่ พบ คู่ที่ตรงกันในตารางที่สอง หลักการนี้แสดงไว้ในแผนภาพด้านล่าง

A semi join, explained using table of colors.

ซินแท็กซ์เหมือนกับการ join ประเภทอื่น เพียงแค่เปลี่ยนฟังก์ชัน join มาใช้ semi_join() แทน

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

สังเกตได้ว่าผลลัพธ์ของ semi join รวมกับผลลัพธ์ของ anti join จะได้ตารางต้นฉบับกลับมา ดังนั้นไม่ว่าข้อมูลในตารางจะเป็นอย่างไร หรือจะ join ในรูปแบบใด semi_join(A, B) บวกกับ anti_join(A, B) จะให้ผลลัพธ์เป็น A เสมอ (แม้ลำดับแถวอาจต่างกัน)

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

แนะนำ Spark ด้วย sparklyr ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

Spark connection ได้ถูกสร้างไว้ให้แล้วในชื่อ spark_conn และ Tibble ที่เชื่อมต่อกับข้อมูล track metadata และ artist terms ใน Spark ได้ถูกกำหนดไว้ล่วงหน้าเป็น track_metadata_tbl และ artist_terms_tbl ตามลำดับ

  • ใช้ semi join เพื่อเชื่อม artist terms เข้ากับ track metadata โดยใช้คอลัมน์ artist_id แล้วกำหนดผลลัพธ์ให้กับตัวแปร joined
  • ใช้ sdf_dim() เพื่อตรวจสอบจำนวนแถวและคอลัมน์ในตารางที่ได้จากการ join

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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?
___
แก้ไขและรันโค้ด