การแยกและการกระจายข้อมูล
การนำฟิลด์ที่มีข้อมูลรวมกัน เช่น GARAGEDESCRIPTION มาแปลงให้ใช้งานได้จริงนั้นต้องผ่านหลายขั้นตอน การทำความเข้าใจตั้งแต่ต้นว่าข้อมูลนี้จะให้ประโยชน์อะไรได้บ้างจึงเป็นสิ่งสำคัญ ในแบบฝึกหัดนี้ เราจะแปลง string ให้เป็น array จากนั้น explode ออกมา แล้วตรวจสอบค่าที่ไม่ซ้ำกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชัน
split()และexplode()จากpyspark.sql.functions - ใช้
split()เพื่อสร้างคอลัมน์ใหม่ชื่อgarage_listโดยแยกdf['GARAGEDESCRIPTION']ด้วย ', ' ซึ่งประกอบด้วยจุลภาคและช่องว่าง - ใช้
explode()เพื่อสร้างแถวใหม่สำหรับแต่ละค่าในdf['garage_list']แล้วกำหนดให้เป็นคอลัมน์ใหม่ชื่อex_garage_list - ใช้
distinct()เพื่อดึงค่าที่ไม่ซ้ำกันของex_garage_listแล้วshow100 แถวแรก โดยตัดทอนข้อความที่ 50 ตัวอักษรเพื่อแสดงผลลัพธ์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import needed functions
____ ____ ____ ____, ____
# Convert string to list-like array
df = df.withColumn(____, ____(____, ____))
# Explode the values into new records
ex_df = df.withColumn(____, ____(____))
# Inspect the values
ex_df[['ex_garage_list']].____().____(100, ____=____)