开始使用免费开始使用

重新分区数据

已提供一个名为 text_df 的 dataframe,包含 idwordchapter 三列。text_df 的前 5 行已打印到控制台。

您可以通过以下方式确定共有 12 个章节:

text_df.select('chapter')\
       .distinct()\
       .sort('chapter')\
       .show(truncate=False)

该命令的结果已作为 Table 1 打印到控制台。

当前 text_df 只有一个分区。假设您知道接下来的处理步骤会按章节对数据进行分组。如果每个章节的数据都保留在同一台机器上,处理效率会更高。为避免在机器之间进行不必要的数据 shuffle,请将 dataframe 重新分区,使每个章节对应一个分区。请使用本章第一个视频中讲到的 repartitiongetNumPartitions 命令。

如果您忘记了视频中的操作步骤,请随时参考控制台右侧提供的幻灯片。

本练习是课程的一部分

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.____.____
编辑并运行代码