在我的 sparkJob 中,我執行了幾個轉換和聚合操作。我需要在管道操作之前和之后通知服務。具體來說,參考下面的代碼,我需要在“管道操作1”對RDD中的所有文檔完成后,“管道操作2”開始之前進行服務調用。JavaRDD<Document> stage_y = stage_x. map(r -> someRddOperation(r) ). pipe( "pipe operation 1 to external process" ). map(r -> someMapOps(r) );// execute something before processing stage_yJavaRDD<Document> stage_z = stage_y. pipe( "pipe operation 2 to another external process" ). map(r -> someMapOps(r) );
2 回答

肥皂起泡泡
TA貢獻1829條經驗 獲得超6個贊
在 Spark 轉換中是惰性求值的,它們返回另一個 RDD 而不運行實際計算。邏輯和物理執行計劃是通過操作操作(可能是計數操作或將轉換后的數據保存到數據存儲)創建的。
此外,兩個映射轉換可能會創建一個組合執行計劃,因此您無法區分哪個操作首先執行。
如果您確實需要在特定階段調用外部進程,您可以考慮將中間 rdd 結果保存到數據存儲并運行外部進程。
添加回答
舉報
0/150
提交
取消