When / Otherwise
โจทย์นี้คล้ายกับข้อที่แล้ว แต่คราวนี้ต้องการเพิ่มค่าหลายรูปแบบตามตำแหน่งของผู้ลงคะแนน ให้แก้ไข DataFrame voter_df โดยเพิ่มค่าสุ่มให้กับสมาชิกที่มีตำแหน่งเป็น Councilmember ใช้ค่า 2 สำหรับ Mayor และค่า 0 สำหรับตำแหน่งอื่น ๆ
DataFrame voter_df ถูกกำหนดไว้และพร้อมใช้งานแล้ว ไลบรารี pyspark.sql.functions พร้อมใช้งานในชื่อ F. สามารถใช้ F.rand() เพื่อสร้างค่าสุ่มได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลด้วย PySpark
คำแนะนำการฝึกหัด
- เพิ่มคอลัมน์ชื่อ
random_valในvoter_dfโดยใช้ผลลัพธ์จากเมธอดF.rand()สำหรับผู้ลงคะแนนที่มีตำแหน่งเป็น Councilmember กำหนดให้random_valเป็น 2 สำหรับ Mayor และกำหนดค่า 0 สำหรับตำแหน่งอื่น ๆ - แสดงแถวบางส่วนของ DataFrame และสังเกตว่าแต่ละเงื่อนไขทำงานถูกต้องหรือไม่
- ใช้
.filterเพื่อกรองแถวที่มีค่า 0 ในrandom_val
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Add a column to voter_df for a voter based on their position
voter_df = voter_df.____('random_val',
when(voter_df.TITLE == 'Councilmember', ____)
.____(____, 2)
____
# Show some of the DataFrame rows
voter_df.show()
# Use the .filter() clause with random_val
voter_df.____(____).show()