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

ดู Schema

ดังที่ทราบจากบทก่อนหน้า การใช้งาน ALS ใน Spark กำหนดให้ movieId และ userId ต้องเป็นชนิดข้อมูล integer ชุดข้อมูลหลายชุดจำเป็นต้องเตรียมข้อมูลให้ถูกต้องก่อนที่จะใช้งานร่วมกับ Spark ได้ ปัญหาที่พบบ่อยคือ Spark อาจตีความตัวเลขเป็น string หรือตีความ string เป็นตัวเลขโดยไม่ถูกต้อง

ในแบบฝึกหัดนี้ จะใช้เมธอด .cast() เพื่อแก้ไขปัญหาประเภทข้อมูล มาตรวจสอบ schema ของชุดข้อมูลกันก่อนเพื่อให้แน่ใจว่าอยู่ในรูปแบบที่ถูกต้อง

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

การสร้าง Recommendation Engines ด้วย PySpark

ดูคอร์ส

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

  • ใช้ .printSchema() เพื่อตรวจสอบว่าชุดข้อมูล ratings มีชนิดข้อมูลที่ถูกต้องสำหรับการใช้งาน ALS หรือไม่ โดยดูว่า userId และ movieId เป็นชนิด integer หรือไม่ และ rating อยู่ในรูปแบบตัวเลขหรือไม่
  • ตรวจสอบให้แน่ใจว่าคอลัมน์ใน dataframe ratings มีชนิดข้อมูลที่ถูกต้อง เรียกใช้เมธอด cast() กับแต่ละคอลัมน์ โดยกำหนดให้คอลัมน์ userID และ movieId เป็นชนิด "integer" และคอลัมน์ rating เป็นชนิด "double" (ไม่จำเป็นต้องใช้คอลัมน์ timestamp จึงสามารถละไว้ได้)
  • เรียก .printSchema() อีกครั้งกับ ratings เพื่อยืนยันว่าชนิดข้อมูลถูกต้องแล้ว

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

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

# Use .printSchema() to see the datatypes of the ratings dataset
ratings.____()

# Tell Spark to convert the columns to the proper data types
ratings = ratings.select(ratings.userId.cast("____"), ratings.movieId.cast("____"), ratings.rating.cast("____"))

# Call .printSchema() again to confirm the columns are now in the correct format
ratings.____()
แก้ไขและรันโค้ด