ตรวจสอบแถวที่ไม่ถูกต้อง
คุณกรองแถวออกด้วย join ได้สำเร็จแล้ว แต่บางครั้งก็อยากตรวจสอบข้อมูลที่ไม่ถูกต้องเหล่านั้นด้วย ข้อมูลนี้สามารถจัดเก็บไว้สำหรับการประมวลผลในภายหลัง หรือใช้แก้ไขปัญหาแหล่งข้อมูลได้
โจทย์ในแบบฝึกหัดนี้คือการหาความแตกต่างระหว่าง DataFrame สองชุด และจัดเก็บแถวที่ไม่ถูกต้องไว้
ออบเจกต์ spark ถูกกำหนดไว้แล้ว และนำเข้า pyspark.sql.functions ในชื่อ F DataFrame ต้นฉบับ split_df และ DataFrame ที่ผ่านการ join แล้ว joined_df พร้อมใช้งานในสถานะเดิมจากขั้นตอนก่อนหน้า
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลด้วย PySpark
คำแนะนำการฝึกหัด
- นับจำนวนแถวของแต่ละ DataFrame
- สร้าง DataFrame ที่มีเฉพาะแถวที่ไม่ถูกต้อง
- ตรวจสอบว่าจำนวนแถวใน DataFrame ใหม่ตรงตามที่คาดไว้
- หาจำนวน folder row ที่ไม่ซ้ำกันที่ถูกนำออกไป
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Determine the row counts for each DataFrame
split_count = ____
joined_count = ____
# Create a DataFrame containing the invalid rows
invalid_df = split_df.____(____(joined_df), '____', '____')
# Validate the count of the new DataFrame is as expected
invalid_count = ____
print(" split_df:\t%d\n joined_df:\t%d\n invalid_df: \t%d" % (split_count, joined_count, invalid_count))
# Determine the number of distinct folder rows removed
invalid_folder_count = invalid_df.____('____').____.____
print("%d distinct invalid folders found" % invalid_folder_count)