Подальший парсинг
Ви суттєво змінили формат цього набору даних порівняно з початковим, але ще залишилося кілька кроків. Потрібно підготувати дані в колонках для подальшого аналізу та прибрати кілька проміжних колонок.
Контекст spark доступний, а pyspark.sql.functions має псевдонім F. Типи з pyspark.sql.types уже імпортовано. Датафрейм split_df — у тому стані, в якому ви його залишили. Пам'ятайте: ви можете скористатися .printSchema() для DataFrame в консольній області, щоб переглянути назви й типи колонок.
⚠️ Примітка: Якщо з'являється AttributeError, перезавантажте вправи та натисніть Run Solution без натискання Run Code.
Ця вправа є частиною курсу
Очищення даних у PySpark
Інструкції до вправи
- Створіть нову функцію
retriever, яка приймає два аргументи: розділені колонки (cols) і загальну кількість колонок (colcount). Функція має повертати список елементів, які ще не визначено як окремі колонки (тобто все після 4-го елемента в списку). - Оголосіть функцію як Spark UDF, що повертає масив рядків (Array of strings).
- Створіть нову колонку
dog_list, використавши UDF і доступні колонки датафрейму. - Видаліть колонки
_c0,colcountтаsplit_cols.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')