在 Spark 中使用用户自定义函数
当处理 DataFrame 时,Spark 内置的字符串函数非常强大。不过,一旦复杂度上来,不借助额外手段就很难处理数据,否则函数调用会纠缠成一团。这正是可以使用用户自定义函数(User Defined Functions,UDF)来操作 DataFrame 的场景。
在本练习中,我们将继续使用 voter_df DataFrame,但需要把 first_name 列替换为"名与中间名"。
pyspark.sql.functions 库已用别名 F 提供。来自 pyspark.sql.types 的类也已导入。
本练习是课程的一部分
使用 PySpark 进行数据清洗
练习说明
- 编辑
getFirstAndMiddle()函数,返回一个由空格分隔的姓名字符串,但不包含列表中的最后一个条目。 - 将该函数定义为用户自定义函数,并返回字符串类型。
- 使用您的 UDF 在
voter_df上创建一个名为first_and_middle_name的新列。 - 显示该 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
____