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

Xem Schema

Như bạn đã biết từ các chương trước, triển khai ALS của Spark yêu cầu movieIduserId phải ở kiểu dữ liệu integer. Nhiều bộ dữ liệu cần được chuẩn bị tương ứng để làm việc đúng với Spark. Một vấn đề thường gặp là Spark hiểu nhầm số là chuỗi và ngược lại.

Tại đây, bạn sẽ dùng phương thức .cast() để xử lý các vấn đề kiểu này. Hãy xem schema của bộ dữ liệu để đảm bảo nó có định dạng đúng.

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

  • Dùng .printSchema() để kiểm tra liệu tập dữ liệu ratings có các kiểu dữ liệu phù hợp để ALS hoạt động đúng hay không. userIdmovieId có ở kiểu integer không? Các rating có ở định dạng số không?
  • Đảm bảo các cột của dataframe ratings có kiểu dữ liệu chính xác. Gọi phương thức cast() trên từng cột và chỉ định các cột userIDmovieId ở kiểu "integer" và cột rating ở kiểu "double". (Chúng ta không cần cột timestamp, nên có thể bỏ qua.)
  • Gọi lại .printSchema() trên ratings để xác nhận các kiểu dữ liệu giờ đã đúng.

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.

# 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.____()
Chỉnh sửa và Chạy Mã