LoslegenKostenlos loslegen

Entfernen von kommentierten Zeilen

Dein Chef möchte, dass du ein komplexes Parsing für einen neuen Datensatz durchführst. Die Daten stellen Annotationsdaten für den ImageNet-Datensatz dar, konzentrieren sich aber speziell auf Hunderassen und deren Identifizierung in Bildern. Bevor die eigentliche Analyse stattfinden kann, musst du mehrere Komponenten mit ungültigen/falschen Daten ausmerzen. Da das allgemeine Schema des Dokuments unbekannt ist, möchtest du die Zeilen in eine einzige Spalte importieren, um eine schnelle Analyse zu ermöglichen.

Als Erstes musst du alle kommentierten Zeilen im Datensatz entfernen.

Der Kontext spark und die Basis-CSV-Datei (annotations.csv.gz) stehen dir für deine Arbeit zur Verfügung. Die Funktion col kann ebenfalls genutzt werden.

Diese Übung ist Teil des Kurses

Daten bereinigen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Importiere die Datei annotations.csv.gz in einen DataFrame und führe eine Zeilenzählung durch. Gib als Trennzeichen das Zeichen | an.
  • Frag die Daten nach der Anzahl der Zeilen ab, die mit # beginnen.
  • Importiere die Datei erneut in einen neuen DataFrame, aber gib in den Optionen das Kommentarzeichen an, um alle kommentierten Zeilen zu entfernen.
  • Zähle den neuen DataFrame und überprüfe, ob die Differenz den Erwartungen entspricht.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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" % (____, ____, ____))
Code bearbeiten und ausführen