Lihat Skema
Seperti yang Anda ketahui dari bab-bab sebelumnya, implementasi ALS di Spark mengharuskan movieId dan userId disediakan sebagai tipe data integer. Banyak himpunan data perlu disiapkan agar dapat berfungsi dengan baik dengan Spark. Masalah umum adalah Spark menganggap angka sebagai string, dan sebaliknya.
Di sini, Anda akan menggunakan metode .cast() untuk menangani jenis masalah tersebut. Mari kita lihat skema himpunan data untuk memastikan formatnya sudah benar.
Latihan ini merupakan bagian dari kursus
Membangun Recommendation Engine dengan PySpark
Instruksi latihan
- Gunakan
.printSchema()untuk memeriksa apakah himpunan data ratings memiliki tipe data yang sesuai agar ALS berfungsi dengan benar. ApakahuserIddanmovieIddisediakan sebagai tipe data integer? Apakahratingdalam format numerik? - Pastikan kolom-kolom pada dataframe
ratingsmemiliki tipe data yang benar. Panggil metodecast()pada setiap kolom dan tetapkan kolomuserIDdanmovieIdbertipe"integer"serta kolomratingbertipe"double". (Kita tidak memerlukan kolomtimestamp, jadi bisa diabaikan.) - Panggil
.printSchema()lagi padaratingsuntuk menegaskan bahwa tipe data sekarang sudah benar.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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.____()