開始使用免費開始

將 MovieLens 資料集載入 RDD

協同過濾是一種推薦系統技術,會根據使用者對各種產品的評分與互動來推薦新的項目。隨著機器學習與資料平行化處理的發展,推薦系統在近年已廣泛應用於電影、音樂、新聞、書籍、研究文章、搜尋查詢、社群標籤等多種領域。在這個分成 3 個部分的練習中,你的目標是使用 PySpark MLlib,基於 MovieLens 100k 資料集 的一個子集,開發一個簡單的電影推薦系統。

在第一部分中,你會先將 MovieLens 的 ratings.csv 載入為 RDD。RDD 的每一行格式為 userId,movieId,rating,timestamp。你需要移除 timestamp 欄,並將每一行對應成 Ratings 物件(userID, productID, rating),最後再把 RDD 切分為訓練與測試兩個 RDD。

請記得,你的工作環境中已提供 SparkContext sc。此外,變數 file_path(指向 ratings.csv 的路徑)以及 ALS 所用的類別(也就是 Rating)也都已可使用。

本練習屬於課程

使用 PySpark 的 Big Data 基礎

檢視課程

練習說明

  • ratings.csv 資料集載入為 RDD。
  • 使用 , 作為分隔符號來切分 RDD。
  • 對於 RDD 的每一行,使用 Rating() 類別建立 userID, productID, rating 的 tuple。
  • 將資料隨機切分為訓練資料與測試資料(0.8 與 0.2)。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Load the data into RDD
data = sc.____(file_path)

# Split the RDD 
ratings = data.____(lambda l: l.split('____'))

# Transform the ratings RDD 
ratings_final = ratings.____(lambda line: Rating(int(line[0]), int(____), float(____)))

# Split the data into training and test
training_data, test_data = ratings_final.____([0.8, 0.2])
編輯並執行程式碼