LoslegenKostenlos loslegen

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

Kurs anzeigen

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]))
Code bearbeiten und ausführen