如何自定义Databricks任务失败通知邮件的错误内容?
Databricks任务失败邮件显示自定义错误信息的解决方法
问题原因
- 使用
raise Exception("My error message")会触发任务失败,但默认邮件通知可能未包含日志详情,导致错误信息不显示。 dbutils.notebook.exit("My error message")属于正常退出逻辑,任务会被标记为成功,因此无法触发失败通知。
解决方案
方法1:抛出异常+日志输出
通过logging模块将错误信息写入任务日志,再抛出异常触发任务失败,确保错误信息能被邮件通知捕获:
import logging x = -1 if x < 0: error_msg = "My error message" # 将错误信息写入任务日志 logging.error(error_msg) # 抛出异常触发任务失败 raise Exception(error_msg)
方法2:sys.exit(非零码)+日志输出
若不想抛出异常,可使用sys.exit(1)(非零退出码)标记任务失败,同时输出错误日志:
import logging import sys x = -1 if x < 0: error_msg = "My error message" logging.error(error_msg) # 非零退出码触发任务失败 sys.exit(1)
额外配置提示
确保Databricks任务的邮件通知设置中,勾选了包含任务日志或失败详情的选项,这样邮件才会将错误信息纳入正文。
内容的提问来源于stack exchange,提问作者SRJCoding
相关产品推荐
相关产品推荐

