Подсчёт объектов на изображение
Следующий шаг в построении пайплайна для этого набора данных — создание нескольких аналитических столбцов. Вам нужно подсчитать количество собак на каждом изображении на основе столбца dog_list, созданного ранее. Также был определён тип DogType, который обеспечит корректный разбор данных в некоторых столбцах.
Фрейм данных joined_df доступен в том виде, в котором вы его последний раз определили; тип DogType типа StructType также определён. Библиотека pyspark.sql.functions доступна под псевдонимом F.
Это упражнение является частью курса
Очистка данных с помощью PySpark
Инструкции к упражнению
- Создайте функцию Python, которая разбивает каждую запись в
dog_listна соответствующие части. Обязательно приведите строки к нужным типам, иначеDogTypeне сможет корректно разобрать данные. - Создайте UDF на основе этой функции.
- Используйте UDF, чтобы создать новый столбец с именем
dogs. - Выведите количество собак в новом столбце для первых 10 строк.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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.____(____('____')).____(____)