BaşlayınÜcretsiz başlayın

Ş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

Kursa Göz Atın

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. userId ve movieId sütunları tamsayı (integer) tipinde mi? rating sayısal biçimde mi?
  • ratings veri çerçevesinin sütunlarının doğru veri tiplerinde olduğundan emin ol. Her sütunda cast() metodunu çağır ve userID ile movieId sütunlarını "integer", rating sütununu ise "double" tipine dönüştür. (timestamp sü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.____()
Kodu Düzenle ve Çalıştır