以 Parquet 格式儲存 DataFrame
在使用 Spark 時,你常會從 CSV、JSON,或其他資料來源開始。這在載入各種類型的資料時很有彈性,但對 Spark 來說並不是最佳格式。Parquet 是一種欄式資料儲存格式,讓 Spark 可以使用「述詞下推」(predicate pushdown)。也就是說,Spark 只會處理完成你所定義操作所需的資料,而不是讀取整個資料集。這讓 Spark 在存取資料時更有彈性,而且在大型資料集上通常能大幅提升效能。
在這個練習中,我們要練習建立一個新的 Parquet 檔,然後從中處理一些資料。
spark 物件以及 df1 與 df2 這兩個 DataFrame 都已為你準備好。
本練習屬於課程
使用 PySpark 清理資料
練習說明
- 檢視
df1和df2的列數。 - 使用
union方法將df1和df2合併成名為df3的新 DataFrame。 - 將
df3儲存為名為AA_DFW_ALL.parquet的parquet檔。 - 讀取
AA_DFW_ALL.parquet檔並顯示筆數。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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())