補上零值
許多推薦引擎會使用隱式評分。很多情況下,這些資料集不會包含使用者從未購買之商品的行為計數。此時你需要把這些組合補齊,並以 0 表示。已為你提供資料框 Z,其中包含 userId、productId,以及 num_purchases(某位使用者購買特定商品的次數)。
本練習屬於課程
使用 PySpark 打造推薦引擎
練習說明
- 使用
.show()方法檢視資料框Z。 - 從
Z萃取不重複的userId與productId,使用.distinct()方法。分別將結果命名為users與products。 - 對資料框
users與products執行.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()