Antal hundar per bild
Nästa steg i att bygga en datapipeline för den här datamängden är att skapa några analysinriktade kolumner. Du har fått i uppgift att beräkna antalet hundar i varje bild utifrån kolumnen dog_list som du skapade tidigare. Du har också skapat DogType, vilket möjliggör bättre tolkning av data i vissa av datakolumnerna.
joined_df är tillgänglig som du senast definierade den, och DogType StructType är definierad. pyspark.sql.functions är tillgängligt under aliaset F.
Den här övningen är en del av kursen
Datarensning med PySpark
Övningsinstruktioner
- Skapa en Python-funktion som delar upp varje post i
dog_listi sina respektive delar. Se till att konvertera strängar till rätt typer, annars tolkas inte DogType korrekt. - Skapa en UDF med hjälp av funktionen ovan.
- Använd UDF:en för att skapa en ny kolumn med namnet
dogs. - Visa antalet hundar i den nya kolumnen för de första 10 raderna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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.____(____('____')).____(____)