Bắt đầu ngayBắt đầu miễn phí

Định dạng đúng và danh sách người dùng duy nhất

Xem qua dataframe R. Lưu ý rằng nó đang ở định dạng thông thường hay "rộng" (wide), với mỗi cột là một bộ phim khác nhau. Cũng lưu ý rằng tên User và tên phim không ở dạng số nguyên. Hãy làm theo các bước để chuẩn bị dữ liệu này đúng cách cho ALS.

Bài tập này là một phần của khóa học

Xây dựng Recommendation Engine với PySpark

Xem khóa học

Hướng dẫn bài tập

  • Import gói monotonically_increasing_id từ pyspark.sql.functions và xem dataframe R bằng phương thức .show().
  • Dùng hàm to_long() để chuyển dataframe R sang dạng dữ liệu "dài" (long). Gọi dataframe mới là ratings.
  • Tạo một dataframe tên users chứa tất cả người dùng .distinct() từ dataframe và gom lại dataframe thành một phân vùng bằng phương thức .coalesce(1).
  • Dùng phương thức monotonically_increasing_id() bên trong withColumn() để tạo một cột mới trong dataframe users, chứa một số nguyên duy nhất cho mỗi người dùng. Đặt tên cột này là userId. Nhớ gọi phương thức .persist() trên dataframe cuối cùng để đảm bảo các ID số nguyên mới được lưu giữ.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Import monotonically_increasing_id and show R
from pyspark.sql.functions import ____
R.show()

# Use the to_long() function to convert the dataframe to the "long" format.
ratings = to_long(____)
ratings.show()

# Get unique users and repartition to 1 partition
users = ratings.select("____").____().____()

# Create a new column of unique integers called "userId" in the users dataframe.
users = users.withColumn("____", monotonically_increasing_id()).____()
users.show()
Chỉnh sửa và Chạy Mã