Worthäufigkeiten ausgeben
Nachdem du Werte (Zählungen) mit demselben Schlüssel (Wort) kombiniert hast, erhältst du in dieser Übung die zehn häufigsten Wörter. Du hättest auch alle Elemente auf einmal mit collect() abrufen können, aber das wäre keine empfehlenswerte Vorgehensweise. RDDs können riesig sein: Folglich könnte dir der Speicher ausgehen und dein Computer abstürzen.
Wir möchten nun also die zehn häufigsten Wörter finden. Dazu musst du zuerst Schlüssel (Wort) und Wert (Anzahl) vertauschen, sodass der Schlüssel die Anzahl und der Wert das Wort ist. Im Moment hat result_RDD
den Schlüssel als Element 0 und den Wert als Element 1. Nach dem Vertauschen von Schlüssel und Wert im Tupel sortierst du den Paar-RDD nach dem Schlüssel (Anzahl). So ist es einfach, den RDD nach dem Schlüssel zu sortieren, statt die sortByKey
-Operation in PySpark auszuführen. Zum Schluss erhältst du die zehn häufigsten Wörter basierend auf ihrer Anzahl im sortierten RDD.
Der SparkContext sc
und resultRDD
sind bereits im Arbeitsbereich verfügbar.
Diese Übung ist Teil des Kurses
Grundlagen von Big Data mit PySpark
Anleitung zur Übung
- Gib die zehn häufigsten Wörter und ihre jeweilige Anzahl im RDD
resultRDD
aus. - Vertausche die Schlüssel und Werte in
resultRDD
. - Sortiere die Schlüssel in absteigender Reihenfolge.
- Gib die zehn häufigsten Wörter und ihre Anzahl im sortierten RDD aus.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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]))