開始使用免費開始

補上零值

許多推薦引擎會使用隱式評分。很多情況下,這些資料集不會包含使用者從未購買之商品的行為計數。此時你需要把這些組合補齊,並以 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()
編輯並執行程式碼