Lägg till nollor
Många rekommendationsmotorer använder implicita betyg. I många fall innehåller dessa datamängder inga beteendeantal för produkter som en användare aldrig har köpt. Då behöver du lägga till dem och fylla i nollor. Dataframe:n Z är tillhandahållen. Den innehåller userId, productId och num_purchases, som anger hur många gånger en användare har köpt en specifik produkt.
Den här övningen är en del av kursen
Bygg rekommendationsmotorer med PySpark
Övningsinstruktioner
- Ta en titt på dataframe:n
Zmed metoden.show(). - Extrahera de unika
userId:n ochproductId:n frånZmed metoden.distinct(). Spara resultaten i variablernausersrespektiveproducts. - Utför en
.crossJoin()på dataframe:rnausersochproducts. Spara resultatet icj. - Gör ett
"left"-join avcjmot den ursprungliga betygs-dataframe:nZpå["userId", "productId"]. Anropa.fillna(0)på resultatet för att fylla i tomma värden med nollor. Spara resultatet iZ_expanded.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# View the data
Z.____()
# Extract distinct userIds and productIds
users = ____.select("____").____()
products = Z.____("productId").____()
# Cross join users and products
____ = users.____(products)
# Join cj and Z
____ = cj.join(Z, ["____", "____"], "left").____(0)
# View Z_expanded
____.show()