Formato correto e usuários distintos
Dê uma olhada no dataframe R. Perceba que ele está no formato convencional ou "wide", com um filme diferente em cada coluna. Note também que os nomes de User e dos filmes não estão no formato inteiro. Siga os passos para preparar corretamente esses dados para o ALS.
Este exercicio faz parte do curso
Construindo mecanismos de recomendação com PySpark
Instruções do exercicio
- Importe o pacote
monotonically_increasing_iddepyspark.sql.functionse visualize o dataframeRusando o método.show(). - Use a função
to_long()para converter o dataframeRem um dataframe "longo". Chame o novo dataframe deratings. - Crie um dataframe chamado
usersque contenha todos os usuários.distinct()do dataframe e reprocesse o dataframe para uma única partição usando o método.coalesce(1). - Use o método
monotonically_increasing_id()dentro dewithColumn()para criar uma nova coluna no dataframe de usuários que contenha um inteiro exclusivo para cada usuário. Dê a essa coluna o nomeuserId. Lembre-se de chamar o método.persist()no dataframe final para garantir que os novos IDs inteiros persistam.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Import monotonically_increasing_id and show R
from pyspark.sql.functions import ____
R.show()
# Use the to_long() function to convert the dataframe to the "long" format.
ratings = to_long(____)
ratings.show()
# Get unique users and repartition to 1 partition
users = ratings.select("____").____().____()
# Create a new column of unique integers called "userId" in the users dataframe.
users = users.withColumn("____", monotonically_increasing_id()).____()
users.show()