當我在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的處理?
當我在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的處理?
有沒有辦法等待第一RDD的處理中,處理第二RDD
你有RDD之前,那麼爲什麼你需要等待並從磁盤重新讀取?
對RDD執行一些轉換,在第一個操作中寫入磁盤,然後繼續使用相同的RDD執行第二個操作。
可能會做,但我需要在我的程序中進行更多的更改。 – pythonic
你可以顯示一些代碼,但是通過「第二個rdd」,我假設你的意思是它來自第一個代碼 –
我想我明白你在哪裏感到困惑。在單個RDD中,分區將相互平行運行。但是,兩個RDD將依次運行(除非您另行編碼)。
誰告訴你spark會嘗試並行處理兩個RDD?這是不正確的! – eliasah
所以這將被連續處理? – pythonic
是的!如果你已經測試過,你會知道的。 – eliasah