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

สถิติสรุปของ MovieLens

มาใช้เมธอด groupBy() ให้ลึกขึ้นอีกขั้น

เมื่อใช้เมธอด .groupBy() กับ dataframe แล้ว สามารถเรียกใช้ฟังก์ชันรวม (aggregate functions) เช่น .sum(), .avg(), .min() เพื่อดูผลลัพธ์แบบจัดกลุ่มได้ แบบฝึกหัดนี้จะพาไปทำความเข้าใจวิธีการดังกล่าว โดยได้นำเข้าฟังก์ชัน min และ avg จาก pyspark.sql.functions ไว้ให้แล้ว

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

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

ดูคอร์ส

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

  • จัดกลุ่มข้อมูลตาม movieId แล้วใช้เมธอด .count() เพื่อนับจำนวนการให้คะแนนที่แต่ละภาพยนตร์ได้รับ จากนั้นเรียกเมธอด .select() เพื่อเลือกค่าต่อไปนี้:
    • min("count") เพื่อดูจำนวนการให้คะแนนต่ำสุดของภาพยนตร์ในชุดข้อมูล โดยข้อแรกนี้เตรียมไว้ให้เป็นตัวอย่างแล้ว
    • avg("count") เพื่อดูจำนวนการให้คะแนนเฉลี่ยต่อภาพยนตร์
  • ทำแบบเดียวกัน แต่คราวนี้จัดกลุ่มตาม userId เพื่อดูค่า min และ avg ของจำนวนการให้คะแนน

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

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

# Min num ratings for movies
print("Movie with the fewest ratings: ")
ratings.groupBy("movieId").count().select(min("count")).show()

# Avg num ratings per movie
print("Avg num ratings per movie: ")
____.groupBy("____").count().____(avg("____")).____()

# Min num ratings for user
print("User with the fewest ratings: ")
ratings.____("userId").____().select(____("____")).____()

# Avg num ratings per users
print("Avg num ratings per user: ")
____.____("____").____().____(____("____")).____()
แก้ไขและรันโค้ด