微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何停止/退出 AWS Glue 作业 (PySpark)?

如何解决如何停止/退出 AWS Glue 作业 (PySpark)?

我有一个成功运行的 AWS glue 作业,可以转换数据以进行预测。如果达到特定条件,我想停止处理并输出状态消息(正在运行):

if specific_condition is None:
    s3.put_object(Body=json_str,Bucket=output_bucket,Key=json_path )
    return None

这会产生“SyntaxError: 'return' external function”,我试过:

if specific_condition is None:
    s3.put_object(Body=json_str,Key=json_path )
    job.commit()

这不是在 AWS Lambda 中运行,而是使用 Lambda 启动的 glue 作业(例如,start_job_run())。

解决方法

Glue Spark 作业中没有返回值,而 job.commit() 只是向 Glue 发出信号,表示作业的任务已完成,仅此而已,脚本在此之后继续运行。要在流程完成后结束您的工作,您必须:

  1. Call sys.exit(STATUS_CODE) #状态码可以任意
  2. 根据条件进行战略性编码,以便作业在 job.commit 之后没有任何代码行。

请注意,如果在 job.commit() 之前调用 sys.exit,则粘合作业将失败。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。