LoslegenKostenlos loslegen

Ändern von DataFrame-Spalten

Zuvor hast du alle Zeilen herausgefiltert, die nicht mit einem Namen übereinstimmen, der einem Namen ähnelt. Auf der Grundlage deiner früheren Arbeit hat dich dein Vorgesetzter gebeten, zwei neue Spalten zu erstellen - first_name und last_name. Sie bittet dich, die Spalte VOTER_NAME an einem beliebigen Leerzeichen in Wörter aufzuteilen. Du behandelst das letzte Wort als last_name, und alle anderen Wörter als first_name. In dieser Übung wirst du einige neue Funktionen verwenden, darunter .split(), .size() und .getItem(). Die .getItem(index) nimmt einen ganzzahligen Wert an, um das entsprechend nummerierte Element in der Spalte zurückzugeben. Die Funktionen .split() und .size() befinden sich in der Bibliothek pyspark.sql.functions.

Bitte beachte, dass diese Vorgänge immer etwas spezifisch für den jeweiligen Anwendungsfall sind. Die Konformität deiner Daten mit einem Format ist oft wichtiger als die spezifischen Details des Formats. Es kommt selten vor, dass eine Datenbereinigung nur für eine Person bestimmt ist - die Anpassung an ein bestimmtes Format erleichtert die spätere Weitergabe der Daten (z. B. muss sich Paul nicht um die Namen kümmern - Mary hat den Datensatz bereits bereinigt).

Der gefilterte Wähler DataFrame aus deiner vorherigen Übung ist unter voter_df verfügbar. Die Bibliothek pyspark.sql.functions ist unter dem Alias F verfügbar.

Diese Übung ist Teil des Kurses

Daten bereinigen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Füge eine neue Spalte mit dem Namen 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 Liste splits und erstelle eine Spalte namens last_name.
  • Lass die Spalte splits weg und zeige die neue voter_df an.

Interaktive Übung

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

# 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