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

有什麼方法可以從dbutils傳播錯誤?

cvantassel
新的貢獻者三世

我有一個主人安排筆記本運行幾個不同的筆記本使用dbutils.notebook.run()函數。偶爾,這些孩子的筆記本會失敗(由於API連接等等)。我的問題是,當我試圖捕捉錯誤:

試題:dbutils.notebook.run (notebook_path timeout_seconds = 0)除了異常e:打印(e)

錯誤總是相同的筆記本/故障點:

調用o8701._run時發生一個錯誤。\ n: com.databricks。WorkflowException: com.databricks。NotebookExecutionException: \ n \乙com.databricks.workflow.WorkflowDriver.run失敗(WorkflowDriver.scala: 98) \ n \乙com.databricks.dbutils_v1.impl.NotebookUtilsImpl.run (NotebookUtilsImpl.scala: 134) \ n \乙com.databricks.dbutils_v1.impl.NotebookUtilsImpl._run (NotebookUtilsImpl.scala: 96) \ n \乙sun.reflect.NativeMethodAccessorImpl。在voke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)\n\tat py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:380)\n\tat py4j.Gateway.invoke(Gateway.java:295)\n\tat py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)\n\tat py4j.commands.CallCommand.execute(CallCommand.java:79)\n\tat py4j.GatewayConnection.run(GatewayConnection.java:251)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: com.databricks.NotebookExecutionException: FAILED\n\tat com.databricks.workflow.WorkflowDriver.run0(WorkflowDriver.scala:146)\n\tat com.databricks.workflow.WorkflowDriver.run(WorkflowDriver.scala:93)\n\t... 13 more\n

這將是有用的捕獲實際的錯誤發生在筆記本上,而不是一個隻是表明它失敗了。

我明白我可以捕獲任何異常和傳播他們使用dbutils.notebook.exit()函數,但我寧願沒有try-except包裝每一個潛在的問題。

有沒有更好的方法來捕獲的錯誤發生在一個孩子的筆記本嗎?

7回複7

werners1
尊敬的貢獻者三世

我可以建議另一種工作嗎?

您可以使用工作流或安排膠/數據工廠的筆記本。

所不同的是,並不是所有的筆記本電腦上運行相同的集群(相對於你的設置)。

我不知道如果這是一個選擇?´

cvantassel
新的貢獻者三世

謝謝你的建議,@werners,但不幸的是行不通的。

我們原來有工作都單獨安排,但越來越多的混亂讓事情因為你需要點擊通過UI找到工作,然後找到錯誤。

我們現在試圖建立一個框架,可以自動運行日誌到表中我們可以有所有信息在一個地方。這將是強大的幫助如果我們還可以捕捉錯誤所以我們可以識別錯誤的類型,而不需要篩選雖然UI。

你嚐試使用一個自定義日誌記錄器來捕獲這些錯誤消息嗎?

cvantassel
新的貢獻者三世

自定義日誌記錄器將工作,但我們希望給予解決方案,不需要我們編寫特定代碼在每個筆記本自調度器將跨團隊使用。

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

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

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

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

Baidu
map