Підрахунок на зображення
Ваше наступне завдання під час побудови конвеєра обробки даних для цього набору даних — створити кілька стовпців для аналізу. Вас попросили порахувати кількість собак, знайдених на кожному зображенні, на основі стовпця 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.____(____('____')).____(____)