重新分区数据
已提供一个名为 text_df 的 dataframe,包含 id、word 和 chapter 三列。text_df 的前 5 行已打印到控制台。
您可以通过以下方式确定共有 12 个章节:
text_df.select('chapter')\
.distinct()\
.sort('chapter')\
.show(truncate=False)
该命令的结果已作为 Table 1 打印到控制台。
当前 text_df 只有一个分区。假设您知道接下来的处理步骤会按章节对数据进行分组。如果每个章节的数据都保留在同一台机器上,处理效率会更高。为避免在机器之间进行不必要的数据 shuffle,请将 dataframe 重新分区,使每个章节对应一个分区。请使用本章第一个视频中讲到的 repartition 和 getNumPartitions 命令。
如果您忘记了视频中的操作步骤,请随时参考控制台右侧提供的幻灯片。
本练习是课程的一部分
Python 中的 Spark SQL 入门
练习说明
- 将
text_df重新分区为 12 个分区,每个章节位于其各自的分区中。 - 显示新 dataframe 的分区数量。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Repartition text_df into 12 partitions on 'chapter' column
repart_df = text_df.____(____, ____)
# Prove that repart_df has 12 partitions
repart_df.____.____