Stampa le frequenze delle parole
Dopo aver combinato i valori (conteggi) con la stessa chiave (parola), in questo esercizio restituirai le prime 10 frequenze. Avresti potuto recuperare tutti gli elementi in una volta con collect(), ma è una cattiva pratica e non è consigliato. Gli RDD possono essere enormi: potresti esaurire la memoria e mandare in crash il computer.
E se volessimo restituire le 10 parole più frequenti? Per farlo, per prima cosa dovrai scambiare chiave (parola) e valore (conteggio) in modo che la chiave sia il conteggio e il valore la parola. Al momento, result_RDD ha chiave come elemento 0 e valore come elemento 1. Dopo aver scambiato chiave e valore nella tupla, ordinerai l’RDD di coppie in base alla chiave (conteggio). In questo modo è facile ordinare l’RDD in base alla chiave senza dover usare l’operazione sortByKey in PySpark. Infine, restituirai le prime 10 parole in base alle loro frequenze dall’RDD ordinato.
Nel tuo workspace hai già a disposizione uno SparkContext sc e resultRDD.
Questo esercizio fa parte del corso
Fondamenti di Big Data con PySpark
Istruzioni dell'esercizio
- Stampa le prime 10 parole e le loro frequenze dall’RDD
resultRDD. - Scambia chiavi e valori in
resultRDD. - Ordina le chiavi in ordine decrescente.
- Stampa le 10 parole più frequenti e le loro frequenze dall’RDD ordinato.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Display the first 10 words and their frequencies from the input RDD
for word in resultRDD.____(10):
print(word)
# Swap the keys and values from the input RDD
resultRDD_swap = resultRDD.____(lambda x: (x[1], x[____]))
# Sort the keys in descending order
resultRDD_swap_sort = resultRDD_swap.____(ascending=False)
# Show the top 10 most frequent words and their frequencies from the sorted RDD
for word in resultRDD_swap_sort.____(____):
print("{},{}". format(____, word[0]))