開始使用免費開始

檢視結構(Schema)

如同你在前面章節所學,Spark 的 ALS 實作要求 movieIduserId 必須是整數型別。為了能與 Spark 正常運作,很多資料集都需要先做相應的準備。常見的問題是 Spark 把數字誤認為字串,或反過來。

在這裡,你會用 .cast() 方法來解決這類型的問題。我們先檢視這個資料集的結構,確認它的格式是否正確。

本練習屬於課程

使用 PySpark 打造推薦引擎

檢視課程

練習說明

  • 使用 .printSchema() 檢查評分資料集的欄位型別是否適用於 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.____()
編輯並執行程式碼