Вилучення закоментованих рядків
Керівник просить вас виконати складний парсинг нового набору даних. Він містить анотації до набору ImageNet, але зосереджується саме на породах собак і їх ідентифікації на зображеннях. Перш ніж переходити до аналізу, потрібно прибрати кілька компонентів із некоректними або помилковими даними. Загальна схема документа невідома, тож ви хочете імпортувати рядки в один стовпець, щоб оперативно їх переглянути.
Спочатку потрібно вилучити всі закоментовані рядки в наборі даних.
Контекст spark і базовий CSV‑файл (annotations.csv.gz) уже доступні. Також доступна функція col.
Ця вправа є частиною курсу
Очищення даних у PySpark
Інструкції до вправи
- Імпортуйте файл
annotations.csv.gzу DataFrame та підрахуйте кількість рядків. Укажіть символ розділювача |. - Дізнайтеся, скільки рядків починаються з #.
- Імпортуйте файл ще раз у новий DataFrame, але вкажіть символ коментаря в параметрах, щоб вилучити закоментовані рядки.
- Порахуйте рядки в новому DataFrame і перевірте, що різниця відповідає очікуваній.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____
# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()
# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')
# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))