Afficher la fréquence des mots
Après avoir combiné les valeurs (nombres) comportant la même clé (mot), dans cet exercice, vous obtiendrez les 10 premières fréquences de mots. Vous auriez pu récupérer tous les éléments en une seule fois en utilisant collect(), mais c'est une mauvaise pratique qui n'est pas recommandée. Les RDD peuvent être énormes : vous risquez de manquer de mémoire et de faire planter votre ordinateur.
Et si nous voulons obtenir les 10 mots principaux ? Pour cela, vous devez d'abord intervertir la clé (mot) et la valeur (nombre) de sorte que les clés soient les nombres et les valeurs les mots. Actuellement, result_RDD
a la clé comme élément 0 et la valeur comme élément 1. Après avoir échangé la clé et la valeur dans le tuple, vous trierez le RDD de paires en fonction de la clé (nombre). De cette façon, il est facile de trier le RDD en fonction de la clé plutôt que d'utiliser l'opération sortByKey
dans PySpark. Enfin, vous renverrez les 10 premiers mots en fonction de leur fréquence à partir du RDD trié.
Vous disposez déjà d'un SparkContext sc
et de resultRDD
dans votre espace de travail.
Cet exercice fait partie du cours
Principes fondamentaux des mégadonnées avec PySpark
Instructions
- Affichez les 10 premiers mots et leur fréquence à partir du RDD
resultRDD
. - Échangez les clés et les valeurs dans
resultRDD
. - Triez les clés par ordre décroissant.
- Affichez (print) les 10 mots les plus fréquents et leur fréquence à partir du RDD trié.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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]))