Print woordfrequenties
Nadat je de waarden (tellingen) met dezelfde key (woord) hebt samengevoegd, ga je in deze oefening de eerste 10 woordfrequenties teruggeven. Je had alle elementen in één keer kunnen ophalen met collect(), maar dat is slechte gewoonte en niet aan te raden. RDD's kunnen enorm zijn: je kunt zonder geheugen komen te zitten en je computer laten crashen.
Wat als we de top 10 woorden willen teruggeven? Daarvoor moet je eerst de key (woord) en value (telling) omwisselen, zodat de key de telling is en de value het woord. Op dit moment heeft result_RDD key als element 0 en value als element 1. Nadat je de key en value in de tuple hebt omgewisseld, sorteer je de pair RDD op basis van de key (telling). Zo kun je de RDD eenvoudig op de key sorteren in plaats van de sortByKey-operatie in PySpark te gebruiken. Tot slot geef je de top 10 woorden terug op basis van hun frequenties uit de gesorteerde RDD.
Je hebt al een SparkContext sc en resultRDD in je werkruimte beschikbaar.
Deze oefening maakt deel uit van de cursus
Big Data Fundamentals met PySpark
Oefeninstructies
- Print de eerste 10 woorden en hun frequenties uit de RDD
resultRDD. - Wissel de keys en values in
resultRDDom. - Sorteer de keys in aflopende volgorde.
- Print de 10 meest frequente woorden en hun frequenties uit de gesorteerde RDD.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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]))