Lưu một DataFrame ở định dạng Parquet
Khi làm việc với Spark, bạn thường bắt đầu với CSV, JSON, hoặc các nguồn dữ liệu khác. Điều này mang lại nhiều linh hoạt về loại dữ liệu có thể nạp, nhưng không phải là định dạng tối ưu cho Spark. Định dạng Parquet là một kho dữ liệu dạng cột, cho phép Spark dùng kỹ thuật predicate pushdown. Nghĩa là Spark chỉ xử lý phần dữ liệu cần thiết để hoàn thành các phép toán bạn định nghĩa, thay vì đọc toàn bộ tập dữ liệu. Cách này giúp Spark linh hoạt hơn trong việc truy cập dữ liệu và thường cải thiện hiệu năng đáng kể trên các tập dữ liệu lớn.
Trong bài tập này, bạn sẽ thực hành tạo một tệp Parquet mới và sau đó xử lý một ít dữ liệu từ đó.
Đối tượng spark và các DataFrame df1 và df2 đã được thiết lập sẵn cho bạn.
Bài tập này là một phần của khóa học
Làm sạch dữ liệu với PySpark
Hướng dẫn bài tập
- Xem số lượng hàng của
df1vàdf2. - Kết hợp
df1vàdf2vào một DataFrame mới têndf3bằng phương thứcunion. - Lưu
df3thành tệpparquetcó tênAA_DFW_ALL.parquet. - Đọc tệp
AA_DFW_ALL.parquetvà hiển thị số lượng bản ghi.
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.
# View the row count of df1 and df2
print("df1 Count: %d" % df1.____())
print("df2 Count: %d" % ____.____())
# Combine the DataFrames into one
df3 = df1.union(df2)
# Save the df3 DataFrame in Parquet format
df3.____.____('AA_DFW_ALL.parquet', mode='overwrite')
# Read the Parquet file into a new DataFrame and run a count
print(spark.read.____('AA_DFW_ALL.parquet').count())