2016-04-29 93 views
0

假設我有10個輸入文件,每個文件大小爲幾GB,我試圖將它們讀入RDD並執行映射/縮減操作。在執行操作之前,Spark必須讀取所有輸入文件嗎?

顯然,reduce階段將不得不等待所有10個文件完全加載。但map階段可以更快開始嗎?

換句話說,Spark是否會逐個創建每個分區,然後立即開始對該分區的數據運行map操作......還是等待所有數據完全從所有10個文件中加載完畢,然後才啓動在所有分區上同時運行map

回答

0

您是否有理由相信在啓動任何轉換之前,spark正在等待所有要加載到內存中的文件?

Spark會做懶惰評估。所以,當你給它一組文件時,它會計算出需要多少工作,然後依次讀取文件來處理它並轉儲輸出。在開始處理之前,它不會嘗試在內存中加載整個文件。

相關問題