亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 RDD 管道轉換操作后執行代碼

如何在 RDD 管道轉換操作后執行代碼

瀟瀟雨雨 2021-10-13 13:58:00
在我的 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 結果保存到數據存儲并運行外部進程。


查看完整回答
反對 回復 2021-10-13
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

在調用操作之前,不會執行 Spark RDD 轉換。在您的情況下, thestage_ystage_z都不會被執行。您必須調用一個動作,指定在這些轉換之后您想要做什么。

一旦通過stage_yRDD調用的操作完成,下面的代碼將被執行。

希望能幫助到你。


查看完整回答
反對 回復 2021-10-13
  • 2 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號