НачатьНачать бесплатно

Дальнейший разбор данных

Вы существенно преобразовали этот набор данных по сравнению с его исходным форматом, однако осталось ещё несколько шагов. Нужно подготовить данные в столбцах для последующего анализа и удалить несколько промежуточных столбцов.

Контекст spark доступен, а pyspark.sql.functions импортирован под псевдонимом F. Типы из pyspark.sql.types уже импортированы. DataFrame split_df находится в том состоянии, в котором вы его оставили. Напомним, что для просмотра имён и типов столбцов можно вызвать .printSchema() на DataFrame в консоли.

⚠️ Примечание: Если вы видите ошибку AttributeError, обновите упражнения и нажмите Показать ответ, не нажимая Запустить код.

Это упражнение является частью курса

Очистка данных с помощью PySpark

Посмотреть курс

Инструкции к упражнению

  • Создайте новую функцию retriever, принимающую два аргумента: разбитые столбцы (cols) и общее количество столбцов (colcount). Функция должна возвращать список записей, которые ещё не определены как столбцы (то есть всё, что идёт после четвёртого элемента списка).
  • Определите функцию как Spark UDF, возвращающий массив строк.
  • Создайте новый столбец dog_list, используя UDF и доступные столбцы DataFrame.
  • Удалите столбцы _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('____').____('____').____('____')
Редактировать и запускать код