重新分割資料
已有一個 dataframe text_df,包含欄位 id、word 和 chapter。text_df 的前 5 列已印出到主控台。
你可以用下列方式判斷共有 12 個章節:
text_df.select('chapter')\
.distinct()\
.sort('chapter')\
.show(truncate=False)
這個指令的結果已以 Table 1 形式印出在主控台。
目前 dataframe text_df 只有單一分割區。假設你知道接下來的處理步驟會依章節進行分組。若要讓處理最有效率,最好是每個章節都待在同一臺機器上。為了避免資料在機器之間不必要的洗牌(shuffling),我們要把 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.____.____