การกรองเนื้อหาในคอลัมน์ด้วย Python
ได้ลองใช้งานการดำเนินการต่างๆ กับคอลัมน์ใน DataFrame กันไปแล้ว ตอนนี้มาลองแก้ไขชุดข้อมูลจริงกัน DataFrame voter_df เก็บข้อมูลเกี่ยวกับผู้ลงคะแนนในสภาเมืองดัลลัสในช่วงสองสามปีที่ผ่านมา โดยมีคอลัมน์ที่ระบุวันที่ลงคะแนน รวมถึงชื่อและตำแหน่งของผู้ลงคะแนน ผู้จัดการของคุณขอให้ทำความสะอาดข้อมูลชุดนี้ เพื่อนำไปใช้ในรายงานที่ต้องการในภายหลัง งานหลักคือการลบรายการที่เป็นค่า null หรือมีอักขระแปลกปลอมออก แล้วคัดกรองเฉพาะผู้ลงคะแนนที่สามารถตรวจสอบข้อมูลได้
นี่คือหนึ่งในขั้นตอนแรกของการทำความสะอาดข้อมูล ซึ่งก็คือการนำข้อมูลที่ผิดรูปแบบอย่างชัดเจนออก สำหรับชุดข้อมูลนี้ ให้ดูข้อมูลต้นฉบับและสังเกตว่ามีค่าใดใน คอลัมน์ VOTER_NAME ที่ดูผิดปกติบ้าง
ไลบรารี pyspark.sql.functions ถูก import ไว้แล้วภายใต้ชื่อแทน F
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลด้วย PySpark
คำแนะนำการฝึกหัด
- แสดงรายการ
VOTER_NAMEที่ไม่ซ้ำกัน - กรอง
voter_dfโดยเลือกเฉพาะแถวที่VOTER_NAMEมีความยาว 1-20 ตัวอักษร - กรองแถวที่มี
_ออกจากvoter_df - แสดงรายการ
VOTER_NAMEที่ไม่ซ้ำกันอีกครั้ง
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Show the distinct VOTER_NAME entries
voter_df.select(____).distinct().show(40, truncate=False)
# Filter voter_df where the VOTER_NAME is 1-20 characters in length
voter_df = ____('length(VOTER_NAME) > 0 and length(VOTER_NAME) < 20')
# Filter out voter_df where the VOTER_NAME contains an underscore
voter_df = voter_df.filter(~ F.col('VOTER_NAME').____)
# Show the distinct VOTER_NAME entries again
voter_df.____(____).____().____(40, truncate=False)