Удаление строк-комментариев
Ваш руководитель просит вас выполнить сложный разбор нового набора данных. Эти данные представляют собой разметку для набора данных 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" % (____, ____, ____))