2017-06-27 82 views
0

我將使用PySpark在相當大的結構化數值數據集(> 1TB)上運行東西(迴歸,ML等)。目前,數據在Google雲端存儲上採用CSV格式。將數據轉換爲其他格式(Parquet等)以加速讀入Spark或將讀取速度與csv保持相同的速度是最佳選擇?如何在谷歌雲上使用PySpark優化存儲數據

回答

1

將數據轉換爲Parquet應該給你一個體面的加速。通過使用Parquet編碼的&壓縮編解碼器,文件不僅會更小,而且當使用Parquet作爲輸入格式時,Spark可以創建更高效​​的計算圖。在Parquet的情況下,PySpark可以在計算開始時加載Parquet文件的元數據和模式,並使用這個元數據/模式來構建更高效的計算圖。

該模式將告訴PySpark列中包含的數據類型,因此可以使用具有正確類型的更優化的例程,而在CSV中,您實際上會讀取字符串值,然後將它們稍後轉換爲正確的二進制類型。由於Parquet是一種列式格式,計算中不需要的列甚至不會從存儲裝載。此外,元數據將告訴Spark關於數據分佈的一些信息,因此調度程序可以更輕鬆地將負載分配給所有工作人員。