Anzahl pro Bild
Deine nächste Aufgabe beim Aufbau einer Datenpipeline für diesen Datensatz ist es, ein paar analyseorientierte Spalten zu erstellen. Du sollst die Anzahl der Hunde in jedem Bild auf Basis deiner zuvor erstellten Spalte dog_list berechnen. Außerdem hast du den DogType definiert, der ein besseres Parsen der Daten innerhalb einiger Datenspalten ermöglicht.
joined_df steht so zur Verfügung, wie du es zuletzt definiert hast, und der StructType DogType ist definiert. pyspark.sql.functions ist unter dem Alias F verfügbar.
Diese Übung ist Teil des Kurses
Datenbereinigung mit PySpark
Anleitung zur Übung
- Erstelle eine Python-Funktion, die jeden Eintrag in
dog_listin seine passenden Teile aufteilt. Achte darauf, alle Strings in die passenden Typen zu konvertieren, sonst kannDogTypenicht korrekt geparst werden. - Erstelle eine UDF mit der oben definierten Funktion.
- Verwende die UDF, um eine neue Spalte namens
dogszu erzeugen. - Zeige die Anzahl der Hunde in der neuen Spalte für die ersten 10 Zeilen an.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Create a function to return the number and type of dogs as a tuple
def dogParse(doglist):
dogs = []
for dog in doglist:
(breed, start_x, start_y, end_x, end_y) = dog.____('____')
dogs.append((____, int(____), ____, ____, ____))
return dogs
# Create a UDF
udfDogParse = ____(____, ArrayType(____))
# Use the UDF to list of dogs
joined_df = joined_df.____('____', ____('____'))
# Show the number of dogs in the first 10 rows
joined_df.____(____('____')).____(____)