取消
顯示的結果
而不是尋找
你的意思是:

可伸縮性問題推理的火花。mllib模型

安多
新的貢獻者三世

你好,

我寫這篇文章,是因為我已經嚐試了很多不同的方向得到一個簡單的模型推理工作沒有成功。

這是工作的輪廓

# 1 -加載基本數據(~ 10億行~ 6列)= build_initial_df交互()# 2 -預處理的一些數據(~ 200到2000列)feature_df = add_metadata(交互,feature_transformer_model) # 3 -交叉功能建設和logisitic回歸推斷模型= PipelineModel.load (model_save_path) prediction_per_user = model.transform (feature_df) final_df = prediction_per_user.select(…) # 4 -寫最終結果write_df_to_snowflake (final_df)

這項工作合理當輸入數據的大小約為100小。

但在全麵失敗。

集群的規模是合理的:40 r5d。2超大給多一點2 tb在RAM中

執行的問題:

非常強烈ressource使用和泄漏大量的磁盤

問題:

我的理解ia模型推理是類似於地圖操作因此非常fractionable可以並行工作合理數量的計算。

我怎麼能把它給我的資源預算工作?我缺少什麼?

已經試過:

1)我已經嚐試使用udf MLflow模型但這並不工作列表功能由前任特性輸出管道模型

2)我殘疾的一些優化火花,因為它將運行階段,填補一個執行人磁盤或超時

3)迫使一些重新分區dataframe處理數據集的小塊(可能改善)

謝謝提前

5回複5

Hubert_Dudek1
尊敬的貢獻者三世

很難分析沒有火花UI和更詳細的信息,但無論如何幾個技巧:

  • 尋找數據傾斜一些分區可以非常大的小的,因為不正確的分區。您可以使用火花UI,但也調試代碼有點(get getNumPartitions ())
  • 增加調整大小spark.sql.shuffle.partitions默認是200大,至少我會去1000
  • 提高司機的大小是2倍執行人(但是得到最佳大小請分析負載——在磚集群選項卡上的指標有神經節或更好integarte datadog集群)
  • 確保一切運行在分布式的方式,特別是udf,您需要使用矢量化熊貓udf將運行在執行人

安多
新的貢獻者三世

謝謝你的幫助。

  • 斜:我沒有關注這一點,我要看一看
  • spark.sql.shuffle.partitions:已經完成
  • 更大的司機:已經完成
  • 確實是有一個udf用於預測分數檢索,我也會看一看

更新:

  • 斜:有一個大但是問題仍然後修複
  • udf:隻存在一個模型udf應該已經優化

Kaniz
社區經理
社區經理

嗨@Adrien莫,你好嗎?你能解決這個問題嗎?

安多
新的貢獻者三世

你好,

謝謝你的檢查,不幸的是沒有。

我相信我的核心問題是關於無法正確設置的大小的數據給我的集群內存塊處理。

我的工作看起來像這幾個地圖操作:

準備數據列< 200 > = >推理< 40143列+模型大小> = >最終結果> < 3列

我能理解,推理部分可能代價高昂。但如果處理每一部分,最糟糕的情況,應該是緩慢而不是失敗,因為內存問題。

任何指導迫使這種行為將受到歡迎。

PS:事情也變得更加困難和損失的日誌信息引發ui和神經節。你會知道問題的根源可能是什麼嗎?

捕捉d本部́凹口2022-03-22̀16.34

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map