Використання користувацьких функцій (UDF) у Spark
Ви вже бачили частину можливостей вбудованих рядкових функцій Spark для роботи з датафреймами. Однак на певному етапі обробляти дані стає складно без клубка вкладених викликів функцій. У таких випадках можна використати користувацькі функції (User Defined Functions), щоб обробляти наші датафрейми.
У цій вправі ми будемо використовувати датафрейм voter_df, але вам потрібно замінити стовпець first_name на поєднання імені та по батькові/другого імені.
Бібліотека pyspark.sql.functions доступна під псевдонімом F. Класи з pyspark.sql.types уже імпортовано.
Ця вправа є частиною курсу
Очищення даних у PySpark
Інструкції до вправи
- Відредагуйте функцію
getFirstAndMiddle(), щоб вона повертала рядок з імен, розділених пробілом, окрім останнього елемента списку імен. - Оголосіть функцію як користувацьку (user-defined function). Вона має повертати тип string.
- Створіть новий стовпець у
voter_dfз назвоюfirst_and_middle_name, використовуючи ваш UDF. - Відобразіть датафрейм.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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
____