我有一個日常工作運行,偶爾失敗與錯誤:意外引發司機已經停止並重新啟動。你的筆記本將會自動重新連接。我得到這份工作的通知失敗後,我手動運行工作成功運行。T他的文章州,它可能會失敗,由於使用收集或一個共享的集群(雖然這是唯一共享集群上運行的工作在預定時間)。下麵是代碼的一部分細胞內,把司機的錯誤。
在weekly_id_list forecast_id: LOGGER.info (f“從{forecast_id}得到預測”)#得到forecast_date forecast_id query1 = f (f”選擇。從cosmosCatalog forecast_date。{cosmos_database_name}。預測F, F。id =“{forecast_id}”;“) forecast_date = spark.sql (query1) .collect () [0] [0]
當失敗時由於火花司機問題,它會自動進行重試,扔一個新的錯誤:圖書館安裝失敗的圖書館由於用戶錯誤pypi{包:“熊貓”}。我認為磚已經熊貓集群中安裝,所以我不認為我需要再次安裝熊貓,但是我的假設是,它會把同樣的錯誤與其他包,因為它源於司機在最近重新啟動或終止原來的運行。
所以我在想如果有一種方法來定義一個缺口(睡眠時間)之間的原始和重審跑,這樣我不得到一個庫安裝錯誤拋出的司機被最近重新啟動或終止。
@Jay楊:
是的,你可以添加一個睡眠時間之間的原始和重審跑避免圖書館安裝誤差由於司機最近重新啟動或終止。這裏有一個例子如何修改代碼以添加一個睡眠時間:
導入時間forecast_id weekly_id_list: LOGGER.info (f“從{forecast_id}得到預測”)#得到forecast_date forecast_id query1 = f (f”選擇。從cosmosCatalog forecast_date。{cosmos_database_name}。預測F, F。id =“{forecast_id}”;“)嚐試:forecast_date = spark.sql (query1) .collect()[0][0]除了:#如果驅動程序失敗,睡眠為5秒,再試一次time . sleep (5) forecast_date = spark.sql (query1) .collect () [0] [0]
在這個例子中,try塊試圖收集天氣預報日期像往常一樣。如果遇到錯誤由於司機最近重新啟動或終止,將睡眠5秒再次試圖收集預測日期之前。你可以根據需要調整睡眠時間。