शुरू करेंमुफ़्त में शुरू करें

स्कीमा देखें

जैसा कि आप पिछले चैप्टर्स से जानते हैं, Spark में ALS की implementation के लिए movieId और userId का datatype integer होना चाहिए. कई datasets को Spark के साथ सही तरह से काम कराने के लिए पहले से तैयार करना पड़ता है. एक आम समस्या यह होती है कि Spark कभी-कभी numbers को strings समझ लेता है, और कभी उल्टा.

यहाँ, आप ऐसी दिक्कतों को दूर करने के लिए .cast() मेथड का इस्तेमाल करेंगे. आइए, डेटासेट के स्कीमा पर नज़र डालें ताकि पक्का हो सके कि फ़ॉर्मेट सही है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

PySpark के साथ Recommendation Engines बनाना

पाठ्यक्रम देखें

अभ्यास निर्देश

  • .printSchema() का उपयोग करके जाँचें कि ratings डेटासेट में ALS के लिए उपयुक्त data types हैं या नहीं. क्या userId और movieId integer datatype में हैं? क्या rating numeric फ़ॉर्मेट में है?
  • ratings डेटाफ़्रेम के कॉलम्स को सही data types में सुनिश्चित करें. हर कॉलम पर cast() मेथड कॉल करें और userID तथा movieId कॉलम्स को "integer" टाइप में तथा rating कॉलम को "double" टाइप में सेट करें. (हमें timestamp कॉलम की ज़रूरत नहीं है, इसे छोड़ सकते हैं.)
  • डेटा types अब सही हैं या नहीं, यह पुष्टि करने के लिए ratings पर फिर से .printSchema() कॉल करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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.____()
कोड संपादित करें और चलाएँ