Comece agoraComece grátis

Estatísticas resumidas por grupo

Neste exercício, vamos combinar os métodos .groupBy() e .filter() que você já usou para calcular o número min() e avg() de usuários que avaliaram cada música, e o número min() e avg() de músicas que cada usuário avaliou.

Como nossos dados agora incluem 0 para itens ainda não consumidos, vamos precisar .filter() esses valores ao fazer estatísticas resumidas por grupo como esta. O conjunto de dados msd é fornecido para você aqui. As funções col(), min() e avg() de pyspark.sql.functions já foram importadas para você.

Este exercicio faz parte do curso

Construindo mecanismos de recomendação com PySpark

Ver curso

Instruções do exercicio

  • Como exemplo, os métodos .filter(), .groupBy() e .count() são aplicados ao conjunto de dados msd junto com .select() e min() para retornar o menor número de avaliações que qualquer música do conjunto de dados recebeu. Use isso como modelo para calcular o número avg() de avaliações implícitas que as músicas em msd receberam.
  • Usando o mesmo modelo, encontre o número min() e avg() de avaliações implícitas que os userIds forneceram no conjunto de dados msd.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# Min num implicit ratings for a song
print("Minimum implicit ratings for a song: ")
msd.filter(col("num_plays") > 0).groupBy("songId").count().select(min("count")).show()

# Avg num implicit ratings per songs
print("Average implicit ratings per song: ")
____.filter(____("____") > 0).groupBy("____").count().____(avg("____")).____()

# Min num implicit ratings from a user
print("Minimum implicit ratings from a user: ")
msd.____(____("num_plays") > ____).____("userId").____().select(____("____")).____()

# Avg num implicit ratings for users
print("Average implicit ratings per user: ")
____.filter(col("num_plays") > 0).____("____").____().____(____("____")).____()
Editar e Executar Código