Liczba obiektów na obraz
Kolejnym krokiem w budowaniu potoku danych dla tego zbioru jest utworzenie kilku kolumn analitycznych. Zadanie polega na obliczeniu liczby psów widocznych na każdym zdjęciu – na podstawie kolumny dog_list utworzonej wcześniej. Zdefiniowano też typ DogType, który umożliwia precyzyjniejsze parsowanie danych w wybranych kolumnach.
Ramka danych joined_df jest dostępna w ostatniej zdefiniowanej postaci, a typ StructType DogType jest już zdefiniowany. Biblioteka pyspark.sql.functions jest dostępna pod aliasem F.
To ćwiczenie jest częścią kursu
Czyszczenie danych w PySpark
Instrukcje do ćwiczenia
- Utwórz funkcję Pythona, która podzieli każdy wpis w kolumnie
dog_listna odpowiednie części. Pamiętaj o konwersji ciągów znaków na właściwe typy – bez tegoDogTypenie sparsuje danych poprawnie. - Utwórz UDF na podstawie powyższej funkcji.
- Użyj UDF, aby utworzyć nową kolumnę o nazwie
dogs. - Wyświetl liczbę psów w nowej kolumnie dla pierwszych 10 wierszy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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.____(____('____')).____(____)