ゼロを追加する
多くのレコメンドエンジンは暗黙的評価を使います。多くの場合、これらのデータセットには、ユーザーが一度も購入していないアイテムの行動回数が含まれていません。このような場合は、それらを補完してゼロを入れる必要があります。データフレーム Z が用意されています。Z には userId、productId、そして特定の商品をユーザーが何回購入したかを表す num_purchases が含まれています。
この演習はコースの一部です
PySpark で作る Recommendation Engines
演習の手順
.show()メソッドを使ってデータフレームZを確認しましょう。.distinct()メソッドを使ってZから重複のないuserIdとproductIdを抽出します。結果はそれぞれusers、productsと名付けましょう。- データフレーム
usersとproductsに対して.crossJoin()を実行します。結果はcjと名付けましょう。 - 元の評価データフレーム
Zとcjを["userId", "productId"]で"left"結合します。結果に対して.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()