Inizia subitoInizia gratis

Statistiche riassuntive raggruppate

In questo esercizio combineremo i metodi .groupBy() e .filter() che hai già usato per calcolare il numero min() e avg() di utenti che hanno valutato ciascun brano e il numero min() e avg() di brani valutati da ciascun utente.

Poiché ora i nostri dati includono 0 per gli elementi non ancora consumati, dovremo escluderli con .filter() quando calcoliamo statistiche riassuntive raggruppate come queste. Il dataset msd è già fornito. Le funzioni col(), min() e avg() da pyspark.sql.functions sono state importate per te.

Questo esercizio fa parte del corso

Costruire motori di raccomandazione con PySpark

Visualizza corso

Istruzioni dell'esercizio

  • Come esempio, ai metodi .filter(), .groupBy() e .count() viene applicato il dataset msd insieme a .select() e min() per restituire il numero più basso di valutazioni ricevute da qualsiasi brano nel dataset. Usa questo modello per calcolare il numero avg() di valutazioni implicite ricevute dai brani in msd.
  • Usando lo stesso modello, trova il numero min() e avg() di valutazioni implicite fornite dagli userId nel dataset msd.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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).____("____").____().____(____("____")).____()
Modifica ed esegui il codice