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

การแก้ไขคอลัมน์ใน DataFrame

ก่อนหน้านี้ได้กรองแถวที่ไม่มีรูปแบบคล้ายชื่อคนออกไปแล้ว ต่อมาผู้จัดการขอให้สร้างคอลัมน์ใหม่ 2 คอลัมน์ ได้แก่ first_name และ last_name โดยให้แยกคอลัมน์ VOTER_NAME ด้วยอักขระช่องว่าง แล้วกำหนดให้คำสุดท้ายเป็น last_name ส่วนคำที่เหลือทั้งหมดเป็น first_name

ในแบบฝึกหัดนี้จะได้ใช้ฟังก์ชันใหม่ ได้แก่ .split(), .size(), และ .getItem() โดย .getItem(index) รับค่าจำนวนเต็มเพื่อดึงรายการในคอลัมน์ตาม index ที่ระบุ ส่วนฟังก์ชัน .split() และ .size() อยู่ในไลบรารี pyspark.sql.functions

โปรดทราบว่าการดำเนินการเหล่านี้มักขึ้นอยู่กับบริบทการใช้งานเป็นหลัก การทำให้ข้อมูลอยู่ในรูปแบบที่กำหนดไว้มักสำคัญกว่ารายละเอียดปลีกย่อยของรูปแบบนั้น งานทำความสะอาดข้อมูลแทบไม่เคยมีไว้สำหรับคนเดียว การกำหนดรูปแบบที่ชัดเจนช่วยให้แชร์ข้อมูลต่อได้ง่ายขึ้นในภายหลัง (เช่น Paul ไม่ต้องกังวลเรื่องชื่อ เพราะ Mary ทำความสะอาดชุดข้อมูลไว้แล้ว)

สามารถใช้ voter DataFrame ที่กรองแล้วจากแบบฝึกหัดก่อนหน้าผ่านตัวแปร voter_df และไลบรารี pyspark.sql.functions ถูก import ไว้ในนามแฝง F

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

การทำความสะอาดข้อมูลด้วย PySpark

ดูคอร์ส

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

  • เพิ่มคอลัมน์ใหม่ชื่อ splits สำหรับเก็บรายการชื่อที่แยกได้
  • ใช้เมธอด getItem() เพื่อสร้างคอลัมน์ใหม่ชื่อ first_name
  • ดึงรายการสุดท้ายจาก list splits แล้วสร้างคอลัมน์ชื่อ last_name
  • ลบคอลัมน์ splits ออก จากนั้นแสดงผล voter_df ที่อัปเดตแล้ว

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

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

# Add a new column called splits separated on whitespace
voter_df = voter_df.withColumn(____, F.____(voter_df.VOTER_NAME, '\s+'))

# Create a new column called first_name based on the first item in splits
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(____)

# Get the last entry of the splits list and create a column called last_name
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(F.____('splits') - ____))

# Drop the splits column
voter_df = voter_df.____('splits')

# Show the voter_df DataFrame
voter_df.show()
แก้ไขและรันโค้ด