Visualizar schema
Como você viu nos capítulos anteriores, a implementação de ALS no Spark exige que movieIds e userIds sejam fornecidos como tipos de dados inteiros. Muitos conjuntos de dados precisam ser preparados de acordo para funcionarem corretamente no Spark. Um problema comum é o Spark interpretar números como strings, e vice-versa.
Aqui, você vai usar o método .cast() para resolver esse tipo de problema. Vamos analisar o schema do conjunto de dados para garantir que ele esteja no formato correto.
Este exercicio faz parte do curso
Construindo mecanismos de recomendação com PySpark
Instruções do exercicio
- Use
.printSchema()para verificar se o conjunto de dados de avaliações contém os tipos de dados corretos para o ALS funcionar adequadamente. OsuserIds emovieIds estão como tipos inteiros? Asratings estão em formato numérico? - Garanta que as colunas do dataframe
ratingsestejam nos tipos de dados corretos. Chame o métodocast()em cada coluna e defina as colunasuserIDemovieIdcomo tipo"integer"e a colunaratingcomo tipo"double". (Não precisamos da colunatimestamp, então podemos deixá-la de fora.) - Chame
.printSchema()novamente emratingspara confirmar que os tipos de dados agora estão corretos.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Use .printSchema() to see the datatypes of the ratings dataset
ratings.____()
# Tell Spark to convert the columns to the proper data types
ratings = ratings.select(ratings.userId.cast("____"), ratings.movieId.cast("____"), ratings.rating.cast("____"))
# Call .printSchema() again to confirm the columns are now in the correct format
ratings.____()