Удаление некорректных строк
После успешного удаления строк с комментариями вы получили информацию об общей структуре данных. DataFrame должен содержать не менее 5 столбцов, разделённых символом табуляции. Обратите внимание, что исходный DataFrame содержит только один столбец, поэтому данные нужно разбить по символу табуляции (\t).
DataFrame annotations_df уже доступен — строки с комментариями из него удалены. Библиотека spark.sql.functions доступна под псевдонимом F. Исходное количество строк в DataFrame сохранено в переменной initial_count.
Это упражнение является частью курса
Очистка данных с помощью PySpark
Инструкции к упражнению
- Создайте новую переменную
tmp_fields, разбив столбец'_c0'DataFrameannotations_dfпо символу табуляции. - Добавьте в
annotations_dfновый столбец'colcount', отражающий количество полей, определённых на предыдущем шаге. - Отфильтруйте из
annotations_dfвсе строки, в которых количество полей меньше 5. - Подсчитайте количество строк в DataFrame и сравните результат с
initial_count.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Split _c0 on the tab character and store the list in a variable
tmp_fields = ____(annotations_df['_c0'], ____)
# Create the colcount column on the DataFrame
annotations_df = annotations_df.____('____', ____(____))
# Remove any rows containing fewer than 5 fields
annotations_df_filtered = annotations_df.____(~ (____))
# Count the number of rows
final_count = ____
print("Initial count: %d\nFinal count: %d" % (initial_count, final_count))