Počet psů na obrázek
Tvým dalším úkolem při budování datového pipeline pro tento dataset je vytvoření několika analytických sloupců. Bylo ti zadáno spočítat počet psů nalezených na každém obrázku na základě sloupce dog_list, který jsi vytvořil/a dříve. Vytvořil/a jsi také typ DogType, který umožní lepší zpracování dat v některých sloupcích.
DataFrame joined_df je k dispozici v podobě, jak jsi ho naposledy definoval/a, a DogType typu StructType je definován. pyspark.sql.functions je dostupný pod aliasem F.
Toto cvičení je součástí kurzu
Cleaning Data with PySpark
Pokyny k cvičení
- Vytvoř pythonovou funkci, která rozdělí každý záznam ve sloupci
dog_listna jeho jednotlivé části. Nezapomeň převést řetězce na odpovídající typy – jinakDogTypenebude správně fungovat. - Na základě této funkce vytvoř UDF.
- Pomocí UDF vytvoř nový sloupec s názvem
dogs. - Zobraz počet psů v novém sloupci pro prvních 10 řádků.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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.____(____('____')).____(____)