Kommentarzeilen entfernen
Dein Chef möchte, dass du ein neues Dataset komplex parst. Die Daten stammen aus den Annotationen des ImageNet-Datensatzes, hier aber mit Fokus auf Hunderassen und deren Erkennung in Bildern. Bevor du mit der eigentlichen Analyse starten kannst, musst du mehrere Bestandteile mit ungültigen/fehlerhaften Daten bereinigen. Das allgemeine Schema des Dokuments ist unbekannt, daher möchtest du die Zeilen zunächst in eine einzelne Spalte importieren, um schnell Analysen durchführen zu können.
Als Erstes musst du alle kommentierten Zeilen im Dataset entfernen.
Der spark-Kontext und die Basis-CSV-Datei (annotations.csv.gz) stehen dir zur Verfügung. Die Funktion col kannst du ebenfalls verwenden.
Diese Übung ist Teil des Kurses
Datenbereinigung mit PySpark
Anleitung zur Übung
- Importiere die Datei
annotations.csv.gzin ein DataFrame und führe eine Zeilenzählung durch. Gib als Trennzeichen | an. - Ermittle die Anzahl der Zeilen, die mit # beginnen.
- Importiere die Datei erneut in ein neues DataFrame, gib diesmal aber das Kommentarzeichen in den Optionen an, um alle Kommentarzeilen zu entfernen.
- Zähle das neue DataFrame und prüfe, ob die Differenz wie erwartet ist.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____
# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()
# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')
# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))