始める無料で始める

スキーマを確認する

前のチャプターで学んだとおり、Spark の ALS を使うには movieIduserId は整数型である必要があります。多くのデータセットは、Spark で正しく動作するように事前準備が必要です。よくある問題として、数値を文字列と認識してしまう、またはその逆があります。

ここでは、この種の問題に対処するために .cast() メソッドを使います。まずはデータセットのスキーマを確認し、形式が正しいか見ていきましょう。

この演習はコースの一部です

PySpark で作る Recommendation Engines

コースを見る

演習の手順

  • .printSchema() を使って、ratings データセットが ALS に適したデータ型になっているか確認しましょう。userIdmovieId は整数型になっていますか。rating は数値型ですか。
  • ratings データフレームの各列が正しいデータ型になるように整えましょう。各列に対して cast() メソッドを呼び出し、userIDmovieId 列を "integer" 型、rating 列を "double" 型に指定してください。(timestamp 列は不要なので省きます。)
  • 最後にもう一度 ratings に対して .printSchema() を呼び出し、データ型が正しくなったことを確認しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Use .printSchema() to see the datatypes of the ratings dataset
ratings.____()

# Tell Spark to convert the columns to the proper data types
ratings = ratings.select(ratings.userId.cast("____"), ratings.movieId.cast("____"), ratings.rating.cast("____"))

# Call .printSchema() again to confirm the columns are now in the correct format
ratings.____()
コードを編集して実行