LoslegenKostenlos loslegen

DataFrame-Spalten ändern

Zuvor hast du alle Zeilen herausgefiltert, die nicht grob einem Namensmuster entsprachen. Auf Basis dieser Vorarbeit bittet dich deine Managerin nun, zwei neue Spalten zu erstellen – first_name und last_name. Du sollst die Spalte VOTER_NAME an Leerzeichen in einzelne Wörter aufteilen. Das letzte Wort behandelst du als last_name, alle übrigen Wörter als first_name. In dieser Übung verwendest du einige neue Funktionen, darunter .split(), .size() und .getItem(). Die Methode .getItem(index) nimmt einen Integer und gibt das entsprechende Element in der Spalte zurück. Die Funktionen .split() und .size() befinden sich in der Bibliothek pyspark.sql.functions.

Beachte, dass diese Operationen immer ein Stück weit vom Anwendungsfall abhängen. Wichtiger als die genauen Details ist oft, dass deine Daten einem definierten Format entsprechen. Datenbereinigung ist selten nur für eine Person gedacht – wenn ein Format festgelegt ist, lassen sich die Daten später leichter teilen (z. B. muss Paul sich nicht mehr um Namen kümmern – Mary hat den Datensatz bereits bereinigt).

Das gefilterte Wähler-DataFrame aus der vorherigen Übung steht dir als voter_df zur Verfügung. Die Bibliothek pyspark.sql.functions ist unter dem Alias F verfügbar.

Diese Übung ist Teil des Kurses

Datenbereinigung mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Füge eine neue Spalte namens splits hinzu, die die Liste der möglichen Namen enthält.
  • Verwende die Methode getItem() und erstelle eine neue Spalte namens first_name.
  • Hole den letzten Eintrag der splits-Liste und erstelle eine Spalte namens last_name.
  • Entferne die Spalte splits und zeige das neue voter_df an.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Add a new column called splits separated on whitespace
voter_df = voter_df.withColumn(____, F.____(voter_df.VOTER_NAME, '\s+'))

# Create a new column called first_name based on the first item in splits
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(____)

# Get the last entry of the splits list and create a column called last_name
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(F.____('splits') - ____))

# Drop the splits column
voter_df = voter_df.____('splits')

# Show the voter_df DataFrame
voter_df.show()
Code bearbeiten und ausführen