Añadir ceros
Muchos motores de recomendación usan valoraciones implícitas. En muchos casos, estos conjuntos de datos no incluyen recuentos de comportamiento para artículos que un usuario nunca ha comprado. En esos casos, tendrás que añadirlos e incluir ceros. Se te proporciona el dataframe Z. Contiene userId, productId y num_purchases, que es el número de veces que un usuario ha comprado un producto concreto.
Este ejercicio forma parte del curso
Creación de motores de recomendación con PySpark
Instrucciones del ejercicio
- Echa un vistazo al dataframe
Zusando el método.show(). - Extrae los
userIdyproductIddistintos deZusando el método.distinct(). Llama a los resultadosusersyproducts, respectivamente. - Realiza un
.crossJoin()entre los dataframesusersyproducts. Llama al resultadocj. - Haz un join
"left"decjcon el dataframe original de valoracionesZsobre["userId", "productId"]. Llama al método.fillna(0)sobre el resultado para rellenar los huecos con ceros. Llama al resultadoZ_expanded.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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()