Şemayı Görüntüle
Önceki bölümlerden bildiğin gibi, Spark'ın ALS uygulaması movieId ve userId değerlerinin tamsayı (integer) veri tipinde olmasını gerektirir. Birçok veri kümesi, Spark ile düzgün çalışabilmek için bu doğrultuda hazırlanmalıdır. Yaygın bir sorun, Spark'ın sayıları metin (string) sanması ya da tam tersi olabilir.
Burada bu tür sorunları çözmek için .cast() metodunu kullanacaksın. Veri kümesinin doğru biçimde olduğundan emin olmak için şemasına birlikte bakalım.
Bu egzersiz, kursun bir parçasıdır
PySpark ile Öneri Motorları Oluşturma
Egzersiz talimatları
- ALS'in düzgün çalışması için ratings veri kümesinin uygun veri tiplerini içerip içermediğini kontrol etmek üzere
.printSchema()kullan.userIdvemovieIdsütunları tamsayı (integer) tipinde mi?ratingsayısal biçimde mi? ratingsveri çerçevesinin sütunlarının doğru veri tiplerinde olduğundan emin ol. Her sütundacast()metodunu çağır veuserIDilemovieIdsütunlarını"integer",ratingsütununu ise"double"tipine dönüştür. (timestampsütununa ihtiyacımız yok, onu dışarıda bırakabiliriz.)- Veri tiplerinin artık doğru olduğunu teyit etmek için
ratingsüzerinde tekrar.printSchema()çağır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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.____()