MovieLens の要約統計量
groupBy() メソッドをもう少し活用してみましょう。
データフレームに .groupBy() を適用すると、.sum()、.avg()、.min() などの集計関数を続けて実行でき、結果はグループごとに集計されます。この演習では、その手順を確認します。min と avg 関数は pyspark.sql.functions からインポート済みです。
この演習はコースの一部です
PySpark で作る Recommendation Engines
演習の手順
movieIdでデータをグループ化し、.count()メソッドで各映画が受け取った評価件数を計算しましょう。続いて.select()メソッドを呼び出し、次の指標を選択します。min("count")データセット内のどの映画に対しても最小の評価件数を取得します。最初の例としてこちらは用意されています。avg("count")映画ごとの平均評価件数を取得します。
- 同様に、今度は
userIdでグループ化して、評価件数のminとavgを求めましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Min num ratings for movies
print("Movie with the fewest ratings: ")
ratings.groupBy("movieId").count().select(min("count")).show()
# Avg num ratings per movie
print("Avg num ratings per movie: ")
____.groupBy("____").count().____(avg("____")).____()
# Min num ratings for user
print("User with the fewest ratings: ")
ratings.____("userId").____().select(____("____")).____()
# Avg num ratings per users
print("Avg num ratings per user: ")
____.____("____").____().____(____("____")).____()