2017-09-06 75 views
1

我在S3存儲桶上有幾千個壓縮的CSV文件,每個大小大約30MB(解壓縮後大約120-160MB),我想使用spark進行處理。按文件劃分的Spark分區

在我的Spark工作中,我在每一行都做了簡單的過濾器選擇查詢。

分區Spark將文件分成兩個或多個部分,然後爲每個分區創建任務。每個任務需要大約1分鐘才能完成處理125K記錄。我想避免跨多個任務對單個文件進行分區。

有沒有辦法獲取文件和分區數據,以便每個任務在一個完整文件上工作,即任務數=輸入文件數。

回答

0

以及玩火花選項,您可以告訴s3a文件系統客戶端告訴它告訴Spark S3中文件的「塊大小」是128 MB。默認值是32 MB,這是足夠接近你的「大約30MB的」數字,火花可以使用wholeTextFiles被分裂兩種

spark.hadoop.fs.s3a.block.size 134217728

文件( )雖然操作更安全