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

ตรวจสอบการ Join ที่ผิดพลาด

การ Join ที่ผิดพลาดอาจเกิดขึ้นโดยไม่มีข้อความแจ้งเตือน กล่าวคือโค้ดจะไม่แสดงข้อผิดพลาด แต่จะคืนค่าข้อมูลที่บิดเบี้ยวซึ่งมีจำนวนแถวมากหรือน้อยกว่าที่ตั้งใจไว้ มาดูกันว่าการ Join ที่ไม่ถูกต้องส่งผลเสียต่อชุดข้อมูลอย่างไรบ้าง

ในแบบฝึกหัดนี้ เราจะสำรวจสิ่งที่เกิดขึ้นเมื่อ Join dataframe สองตัวที่มีความแม่นยำของ key ไม่เท่ากัน แล้วเปรียบเทียบจำนวนระเบียนระหว่างการ Join ที่ถูกต้องกับการ Join ที่ผิดพลาด

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

Feature Engineering with PySpark

ดูคอร์ส

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

  • สร้างการ Join ระหว่าง df_orig (dataframe ก่อนที่จะแก้ไขความแม่นยำ) กับ walk_df โดยจับคู่ตามคอลัมน์ longitude และ latitude ในแต่ละ dataframe
  • นับจำนวนค่าที่หายไปโดยใช้ where() และ isNull() บน df['walkscore'] และ correct_join['walkscore'] จะพบว่ามีค่าที่หายไปจำนวนมาก เนื่องจากประเภทข้อมูลและความแม่นยำไม่ตรงกัน
  • สร้างการ Join ระหว่าง df กับ walk_df โดยจับคู่เฉพาะคอลัมน์ longitude เท่านั้น
  • นับจำนวนระเบียนด้วย count() สำหรับ few_keys_df และ correct_join_df จะพบว่ามีจำนวนระเบียนมากกว่าที่ควรจะเป็น เนื่องจากเงื่อนไขการจับคู่ไม่รัดกุมเพียงพอ

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

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

# Join on mismatched keys precision 
wrong_prec_cond = [____ == ____, ____ == ____]
wrong_prec_df = ____.join(____, on=wrong_prec_cond, how='left')

# Compare bad join to the correct one
print(wrong_prec_df.____(____.____()).count())
print(correct_join_df.____(____.____).count())

# Create a join on too few keys
few_keys_cond = [____ == ____]
few_keys_df = ____.join(____, on=few_keys_cond, how='left')

# Compare bad join to the correct one
print("Record Count of the Too Few Keys Join Example: " + str(____.____()))
print("Record Count of the Correct Join Example: " + str(____.____()))
แก้ไขและรันโค้ด