Phân vùng lại dữ liệu
Một dataframe text_df tồn tại với các cột id, word và chapter. 5 hàng đầu tiên của text_df đã được in ra console.
Bạn có thể xác định rằng có 12 chương bằng lệnh sau:
text_df.select('chapter')\
.distinct()\
.sort('chapter')\
.show(truncate=False)
Kết quả của lệnh này được in ra console là Table 1.
Hiện tại dataframe text_df nằm trong một partition duy nhất. Giả sử bạn biết các bước xử lý sắp tới sẽ nhóm dữ liệu theo chương. Việc xử lý sẽ hiệu quả nhất nếu mỗi chương nằm gọn trên một máy. Để tránh shuffle dữ liệu không cần thiết giữa các máy, hãy phân vùng lại dataframe thành một partition cho mỗi chương, sử dụng các lệnh repartition và getNumPartitions đã được giới thiệu trong video đầu tiên của chương này.
Nếu quên cách thực hiện trong video, bạn cứ tham khảo các slide ở bên phải console.
Bài tập này là một phần của khóa học
Nhập môn Spark SQL bằng Python
Hướng dẫn bài tập
- Phân vùng lại
text_dfthành 12 partition, mỗi chương nằm trong partition riêng của nó. - Hiển thị số lượng partition trong dataframe mới.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Repartition text_df into 12 partitions on 'chapter' column
repart_df = text_df.____(____, ____)
# Prove that repart_df has 12 partitions
repart_df.____.____