ПочатиПочніть безкоштовно

Модифікація стовпців DataFrame

Раніше ви відфільтрували всі рядки, які не відповідали чомусь схожому на ім'я. Тепер, спираючись на попередню роботу, ваша менеджерка попросила вас створити два нові стовпці — first_name і last_name. Вона просить розбити стовпець VOTER_NAME на слова за будь-яким пробільним символом. Останнє слово вважайте last_name, а всі інші — first_name. У цій вправі ви використаєте нові функції: .split(), .size() та .getItem(). Метод .getItem(index) приймає ціле число та повертає відповідний за номером елемент у стовпці. Функції .split() і .size() знаходяться в бібліотеці pyspark.sql.functions.

Зауважте, що такі операції завжди дещо залежать від конкретного сценарію. Важливо, щоб дані відповідали узгодженому формату — це часто важливіше за дрібні деталі самого формату. Завдання з очищення даних рідко робиться для однієї людини: узгоджений формат полегшує подальший обмін даними (тобто, Павлові не доведеться перейматись іменами — Марія вже прочистила набір даних).

Відфільтрований датафрейм виборців з попередньої вправи доступний як voter_df. Бібліотека pyspark.sql.functions доступна під псевдонімом F.

Ця вправа є частиною курсу

Очищення даних у PySpark

Переглянути курс

Інструкції до вправи

  • Додайте новий стовпець splits, що міститиме список можливих імен.
  • Використайте метод getItem() і створіть новий стовпець first_name.
  • Візьміть останній елемент списку splits і створіть стовпець last_name.
  • Видаліть стовпець splits і виведіть оновлений voter_df.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Add a new column called splits separated on whitespace
voter_df = voter_df.withColumn(____, F.____(voter_df.VOTER_NAME, '\s+'))

# Create a new column called first_name based on the first item in splits
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(____)

# Get the last entry of the splits list and create a column called last_name
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(F.____('splits') - ____))

# Drop the splits column
voter_df = voter_df.____('splits')

# Show the voter_df DataFrame
voter_df.show()
Редагувати та запускати код