開始使用免費開始

補上零值

許多推薦引擎會使用隱式評分。很多情況下,這些資料集不會包含使用者從未購買之商品的行為計數。此時你需要把這些組合補齊,並以 0 表示。已為你提供資料框 Z,其中包含 userIdproductId,以及 num_purchases(某位使用者購買特定商品的次數)。

本練習屬於課程

使用 PySpark 打造推薦引擎

檢視課程

練習說明

  • 使用 .show() 方法檢視資料框 Z
  • Z 萃取不重複的 userIdproductId,使用 .distinct() 方法。分別將結果命名為 usersproducts
  • 對資料框 usersproducts 執行 .crossJoin(),將結果命名為 cj
  • "left" 方式,在 ["userId", "productId"] 上將 cj 與原始評分資料框 Z 進行連接。對結果呼叫 .fillna(0),將空白補為 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()
編輯並執行程式碼