我申請一個熊貓UDF的分組dataframe磚。當我這樣做時,幾個永遠任務掛起,而其餘迅速完成。
我開始重新分區數據集,每組一個分區:
group_factors = [' a ', ' b ', ' c '] #蒙麵匿名model_df = (df .repartition (num_cores #分區到馬克思的核心計算group_factors #分區由集團這樣一群總是在同一個分區))
我那組數據集和應用udf:
結果= (model_df #使用重新分區數據.groupBy (group_factors) #構建組織.applyInPandas (udf_tune、模式= result_schema) #適用於並行)#寫結果表來存儲參數results.write.mode(覆蓋).saveAsTable (table_name)
火花然後分裂成任務的數量等於分區。它成功運行兩個任務。這兩個任務不拋出錯誤,而是掛起,直到超時閾值。
奇怪的是,這些團體/任務似乎沒有任何違規行為。記錄大小類似於其他58任務完成。代碼不拋出任何錯誤,所以我們沒有輸入錯誤或格式化的數據。此外,實際上這個命令成功完成約20%的時間。但是大多數時候,我們被掛在一個或兩個任務,導致工作失敗。
stderr隻是指出,任務掛:
stdout指出一個配置錯誤(盡管包含相同的完成所有任務分配失敗的標準輸出文件):
任何建議如何避免掛任務問題?
注:當我減少我的數據大小(例如,model_df分裂成4小的子集,分組和應用在每個子集,並附加結果)我不會遇到這個問題。
@Gary巴克利:
掛任務問題你經曆的熊貓UDF磚可以由各種因素造成的。這裏有一些建議來幫助您診斷和解決潛在的問題:
@Gary巴克利:
掛任務問題你經曆的熊貓UDF磚可以由各種因素造成的。這裏有一些建議來幫助您診斷和解決潛在的問題: