2017-02-05 95 views
-2

當我在Spark程序中觸及資源限制時,我想將處理分成迭代,並將每次迭代的結果上傳到HDFS,如下所示。如何在Spark中串行處理兩個RDD?

do something using first rdd 
upload the output to hdfs 

do something using second rdd 
upload the output to hdfs 

但據我所知,Spark會嘗試並行運行這兩個。在處理第二個rdd之前是否有辦法等待第一個rdd的處理?

+0

誰告訴你spark會嘗試並行處理兩個RDD?這是不正確的! – eliasah

+0

所以這將被連續處理? – pythonic

+3

是的!如果你已經測試過,你會知道的。 – eliasah

回答

0

有沒有辦法等待第一RDD的處理中,處理第二RDD

你有RDD之前,那麼爲什麼你需要等待並從磁盤重新讀取?

對RDD執行一些轉換,在第一個操作中寫入磁盤,然後繼續使用相同的RDD執行第二個操作。

+0

可能會做,但我需要在我的程序中進行更多的更改。 – pythonic

+1

你可以顯示一些代碼,但是通過「第二個rdd」,我假設你的意思是它來自第一個代碼 –

1

我想我明白你在哪裏感到困惑。在單個RDD中,分區將相互平行運行。但是,兩個RDD將依次運行(除非您另行編碼)。

相關問題