You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Synapse Apache Spark Notebook写入错误数据后调用exit接口退出

代码调整建议

你需要把mssparkutils.notebook.exit()放在else分支的写入逻辑之后,确保写入操作完全执行完成后再触发Notebook退出,避免出现文件写入不完整的异常。
另外注意你当前写入配置用的是delta格式,如果需要输出parquet格式,需要把format("delta")改成format("parquet")。

调整后的完整代码示例

if validation_result["success"]:
    print("Successful")
    # 若校验成功后也需要退出Notebook,可在此处添加退出代码
else:
    # 先执行错误数据写入操作
    (
        spark.sql("Select * from notify_error")
        .coalesce(1)
        .write.format("parquet") # 若需要保留delta格式可改回原配置
        .mode("overwrite")
        .save(lakePath)
    )
    # 写入完成后再执行Notebook退出
    mssparkutils.notebook.exit("校验失败,错误日志已写入") # returnValue可自定义状态信息,方便上层调用逻辑识别返回结果

额外注意点

  • coalesce(1)虽然能生成单个文件,但数据量较大时会引发单节点性能瓶颈,仅建议错误日志这类小数据量场景使用
  • 退出时传入的returnValue支持自定义,比如传入错误码、文件存储路径等信息,如果当前Notebook是被其他Notebook调用,可以直接获取该返回值做后续处理

内容的提问来源于stack exchange,提问作者Patterson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:24:02