Număr de câini per imagine
Următoarea ta sarcină în construirea unui pipeline de date pentru acest set de date este să creezi câteva coloane orientate spre analiză. Ți s-a cerut să calculezi numărul de câini din fiecare imagine pe baza coloanei dog_list create anterior. Ai creat, de asemenea, DogType, care va permite o parsare mai bună a datelor din unele dintre coloanele setului de date.
joined_df este disponibil așa cum l-ai definit ultima dată, iar DogType StructType este deja definit. pyspark.sql.functions este disponibil sub aliasul F.
Acest exercițiu face parte din cursul
Curățarea datelor cu PySpark
Instrucțiuni pentru exercițiu
- Creează o funcție Python care să împartă fiecare intrare din
dog_listîn componentele corespunzătoare. Asigură-te că transformi orice șiruri de caractere în tipurile potrivite, altfelDogTypenu va parsa corect. - Creează un UDF folosind funcția de mai sus.
- Folosește UDF-ul pentru a crea o nouă coloană numită
dogs. - Afișează numărul de câini din noua coloană pentru primele 10 rânduri.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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.____(____('____')).____(____)