Weiteres Parsen
Du hast diesen Datensatz in ein deutlich anderes Format gebracht als zuvor, aber es gibt noch ein paar Dinge zu tun. Du musst die Spaltendaten für die spätere Analyse vorbereiten und einige Zwischen-Spalten entfernen.
Der spark-Kontext ist verfügbar und pyspark.sql.functions ist als F aliasiert. Die Typen aus pyspark.sql.types sind bereits importiert. Das DataFrame split_df ist in dem Zustand, in dem du es zuletzt verlassen hast. Denk daran: Du kannst im Konsolenbereich .printSchema() auf einem DataFrame verwenden, um die Spaltennamen und -typen anzuzeigen.
⚠️ Hinweis: Wenn du einen AttributeError siehst, lade die Übungen neu und klicke auf Run Solution, ohne auf Code ausführen zu klicken.
Diese Übung ist Teil des Kurses
Datenbereinigung mit PySpark
Anleitung zur Übung
- Erstelle eine neue Funktion namens
retriever, die zwei Argumente annimmt: die gesplitteten Spalten (cols) und die Gesamtzahl der Spalten (colcount). Diese Funktion soll eine Liste der Einträge zurückgeben, die noch nicht als Spalten definiert wurden (also alles nach Element 4 in der Liste). - Definiere die Funktion als Spark-UDF, das ein Array aus Strings zurückgibt.
- Erstelle die neue Spalte
dog_listmithilfe des UDF und der verfügbaren Spalten im DataFrame. - Entferne die Spalten
_c0,colcountundsplit_cols.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')