补零
许多推荐引擎会使用隐式评分。很多情况下,这类数据集不会包含用户从未购买过的商品的行为计数。遇到这种情况,您需要将这些组合补齐,并把缺失的计数设为 0。已为您提供数据框 Z,其中包含 userId、productId 和 num_purchases(某位用户购买某个商品的次数)。
本练习是课程的一部分
使用 PySpark 构建推荐引擎
练习说明
- 使用
.show()方法查看数据框Z。 - 使用
.distinct()方法从Z中提取唯一的userId和productId。分别将结果命名为users和products。 - 对数据框
users和products执行.crossJoin(),将结果命名为cj。 - 在
["userId", "productId"]上将cj与原始评分数据框Z进行"left"连接。对结果调用.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()