Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz funkcję Pythona, która podzieli każdy wpis w kolumnie dog_list na odpowiednie części. Pamiętaj o konwersji ciągów znaków na właściwe typy – bez tego DogType nie 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.____(____('____')).____(____)
Edytuj i uruchom kod