การแปลงข้อมูลเพิ่มเติม
ปรับรูปแบบชุดข้อมูลนี้ไปได้มากแล้ว แต่ยังมีสิ่งที่ต้องทำอีกเล็กน้อย ได้แก่ การเตรียมข้อมูลในคอลัมน์สำหรับการวิเคราะห์ในขั้นตอนถัดไป และลบคอลัมน์ที่ใช้เป็นตัวกลางออก
spark context พร้อมใช้งานแล้ว และ pyspark.sql.functions ถูก alias เป็น F ส่วน type ต่าง ๆ จาก pyspark.sql.types ได้ถูก import ไว้แล้ว DataFrame split_df อยู่ในสถานะที่ค้างไว้ล่าสุด จำไว้ว่าสามารถใช้ .printSchema() กับ DataFrame ในพื้นที่คอนโซลเพื่อดูชื่อและประเภทของคอลัมน์ได้
⚠️ หมายเหตุ: หากพบ AttributeError ให้รีเฟรชแบบฝึกหัดและคลิก Run Solution โดยไม่ต้องคลิก Run Code
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลด้วย PySpark
คำแนะนำการฝึกหัด
- สร้างฟังก์ชันชื่อ
retrieverที่รับ argument 2 ตัว ได้แก่ คอลัมน์ที่แยกแล้ว (cols) และจำนวนคอลัมน์ทั้งหมด (colcount) ฟังก์ชันนี้ควรคืนค่าเป็น list ของรายการที่ยังไม่ได้กำหนดเป็นคอลัมน์ (กล่าวคือ ทุกอย่างหลัง item ที่ 4 ใน list) - กำหนดฟังก์ชันนี้เป็น Spark UDF โดยให้คืนค่าเป็น Array ของ string
- สร้างคอลัมน์ใหม่ชื่อ
dog_listโดยใช้ UDF และคอลัมน์ที่มีอยู่ใน DataFrame - ลบคอลัมน์
_c0,colcountและsplit_colsออก
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')