if finalArtistID is None: finalArtistID = artistID return Rating(userID, finalArtistID, count) trainData = rawUserArtistData.map(lambda x: ratinglookup(x)) tranData.cache() bArtistAlias = sc.broadcast(artistAlias) #build model model = ALS.trainImplicit(trainData, 10, 5) #test artist spotcheckingID = 2093760 bArtistByID = sc.braodcast(artistByID) rawArtistForUser = (trainData .filter(lambda x: x.user == spotcheckingID) .map(lambda x: bArtistByID.value.get(x.product)) .collect()) print(rawArtistForUser) #output recommendations recommendations = map(lambda x: artistByID.get(x.product), model.call("recommendProducts", spotcheckingID, 10)) print(recommendations)