Использование пользовательских функций в Spark
Вы уже убедились, насколько мощными могут быть встроенные строковые функции Spark при работе с DataFrames. Однако при обработке сложных данных цепочки вызовов функций быстро становятся запутанными и трудночитаемыми. Именно здесь на помощь приходят пользовательские функции (UDF) — они позволяют обрабатывать данные в DataFrame аккуратно и гибко.
В этом упражнении вы будете работать с DataFrame voter_df и замените столбец first_name столбцом, содержащим имя и отчество.
Библиотека pyspark.sql.functions доступна под псевдонимом F. Классы из pyspark.sql.types уже импортированы.
Это упражнение является частью курса
Очистка данных с помощью PySpark
Инструкции к упражнению
- Отредактируйте функцию
getFirstAndMiddle()так, чтобы она возвращала строку из имён, разделённых пробелом, без последнего элемента списка. - Определите функцию как пользовательскую (UDF). Она должна возвращать строковый тип.
- Создайте новый столбец
first_and_middle_nameвvoter_dfс помощью вашей UDF. - Выведите DataFrame на экран.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def getFirstAndMiddle(names):
# Return a space separated string of names
return ' '.join(____)
# Define the method as a UDF
udfFirstAndMiddle = F.____(____, ____)
# Create a new column using your UDF
voter_df = voter_df.withColumn('first_and_middle_name', ____(____))
# Show the DataFrame
____