เพิ่มค่าศูนย์
เครื่องมือแนะนำหลายตัวใช้ค่าเรตติ้งแบบ implicit ในหลายกรณี ชุดข้อมูลเหล่านี้จะไม่มีจำนวนพฤติกรรมสำหรับสินค้าที่ผู้ใช้ไม่เคยซื้อมาก่อน จึงต้องเพิ่มแถวเหล่านั้นเข้าไปและกำหนดค่าเป็นศูนย์ DataFrame Z ถูกเตรียมไว้ให้แล้ว โดยมีคอลัมน์ userId, productId และ num_purchases ซึ่งคือจำนวนครั้งที่ผู้ใช้ซื้อสินค้านั้น ๆ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้าง Recommendation Engines ด้วย PySpark
คำแนะนำการฝึกหัด
- ดูข้อมูลใน DataFrame
Zโดยใช้เมธอด.show() - ดึงค่า
userIdและproductIdที่ไม่ซ้ำกันออกจากZโดยใช้เมธอด.distinct()แล้วเก็บผลลัพธ์ไว้ในตัวแปรusersและproductsตามลำดับ - ใช้
.crossJoin()กับ DataFrameusersและproductsแล้วเก็บผลลัพธ์ไว้ในตัวแปรcj - Join
cjกับ DataFrame เรตติ้งเดิมZแบบ"left"โดยใช้คอลัมน์["userId", "productId"]จากนั้นเรียก.fillna(0)กับผลลัพธ์เพื่อแทนที่ค่าว่างด้วยศูนย์ แล้วเก็บผลลัพธ์ไว้ในตัวแปรZ_expanded
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# View the data
Z.____()
# Extract distinct userIds and productIds
users = ____.select("____").____()
products = Z.____("productId").____()
# Cross join users and products
____ = users.____(products)
# Join cj and Z
____ = cj.join(Z, ["____", "____"], "left").____(0)
# View Z_expanded
____.show()