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 movieId và userId 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
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.userIdvàmovieIdcó ở kiểu integer không? Cácratingcó ở định dạng số không? - Đảm bảo các cột của dataframe
ratingscó kiểu dữ liệu chính xác. Gọi phương thứccast()trên từng cột và chỉ định các cộtuserIDvàmovieIdở kiểu"integer"và cộtratingở kiểu"double". (Chúng ta không cần cộttimestamp, nên có thể bỏ qua.) - Gọi lại
.printSchema()trênratingsđể 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.____()