进一步解析
您已经把这个数据集转换成与最初大不相同的格式,但还有一些事情要做。您需要为后续分析准备列数据,并删除一些中间过程产生的列。
spark 上下文可用,pyspark.sql.functions 已用别名 F。pyspark.sql.types 中的类型也已导入。split_df DataFrame 保持为您上次处理后的状态。请记住,您可以在控制台中对 DataFrame 使用 .printSchema() 来查看列名和类型。
⚠️ 注意: 如果出现 AttributeError,请刷新练习并点击 Run Solution,不要点击 运行代码。
本练习是课程的一部分
使用 PySpark 进行数据清洗
练习说明
- 新建函数
retriever,接收两个参数:拆分后的列(cols)和列总数(colcount)。该函数应返回尚未定义为列的条目列表(也就是列表中从第 5 个元素开始的所有项)。 - 将该函数定义为 Spark UDF,返回字符串数组(Array of strings)。
- 使用该 UDF 和 DataFrame 中可用的列创建新列
dog_list。 - 删除列
_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('____').____('____').____('____')