Afișează frecvențele cuvintelor
După ce ai combinat valorile (contorizările) cu aceeași cheie (cuvântul), în acest exercițiu vei returna primele 10 frecvențe de cuvinte. Ai fi putut recupera toate elementele deodată folosind collect(), însă aceasta este o practică nerecomandate. RDD-urile pot fi foarte mari: riști să epuizezi memoria și să blochezi calculatorul.
Cum procedăm dacă vrem să returnăm cele mai frecvente 10 cuvinte? Pentru aceasta, va trebui mai întâi să inversezi cheia (cuvântul) și valoarea (contorizarea), astfel încât cheia să fie contorizarea, iar valoarea să fie cuvântul. În prezent, result_RDD are cheia ca element 0 și valoarea ca element 1. După ce inversezi cheia și valoarea din tuplu, vei sorta RDD-ul pereche după cheie (contorizare). Astfel, este mai simplu să sortezi RDD-ul după cheie, fără a recurge la operația sortByKey din PySpark. În final, vei returna cele mai frecvente 10 cuvinte din RDD-ul sortat.
Ai deja un SparkContext sc și resultRDD disponibile în spațiul tău de lucru.
Acest exercițiu face parte din cursul
Fundamentele Big Data cu PySpark
Instrucțiuni pentru exercițiu
- Afișează primele 10 cuvinte și frecvențele lor din RDD-ul
resultRDD. - Inversează cheile și valorile din
resultRDD. - Sortează cheile în ordine descrescătoare.
- Afișează cele mai frecvente 10 cuvinte și frecvențele lor din RDD-ul sortat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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]))