Добавление нулей
Многие рекомендательные системы используют неявные оценки. В таких наборах данных часто отсутствуют данные о поведении пользователя для товаров, которые он никогда не приобретал. В подобных случаях необходимо добавить эти записи и заполнить их нулями. Датафрейм Z уже подготовлен для вас. Он содержит столбцы userId, productId и num_purchases — количество раз, которое пользователь приобрёл конкретный товар.
Это упражнение является частью курса
Построение рекомендательных систем с помощью PySpark
Инструкции к упражнению
- Изучите датафрейм
Zс помощью метода.show(). - Извлеките уникальные значения
userIdиproductIdизZс помощью метода.distinct(). Сохраните результаты в переменныеusersиproductsсоответственно. - Выполните
.crossJoin()на датафреймахusersиproducts. Сохраните результат в переменнуюcj. - Соедините
cjс исходным датафреймом оценокZпо столбцам["userId", "productId"]с помощью объединения"left". Вызовите метод.fillna(0)на результате, чтобы заполнить пропуски нулями. Сохраните итог в переменнуюZ_expanded.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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()