以编程方式结束/退出粘合作业

Jér*_*émy 2 python exit pyspark aws-glue aws-glue-spark

我正在使用 Glue 书签来处理数据。我的工作是每天安排的,但也可以“手动”启动。由于我使用书签,有时胶水作业可以在没有新数据要处理的情况下启动,然后读取的数据帧为空。在这种情况下,我想好好地结束我的工作,因为它没有什么关系。我试过:

if df.rdd.isEmpty():
    job.commit()
    sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

但是,我的工作因错误而终止SystemExit: 0

如何圆满结束工作?

小智 7

仅使用os._exit()在 Glue 3.0 版本中不起作用

要在满足某些条件后正常退出作业,请使用:

import os
import sys
.
. # Your Glue Job Code
.
logger.info("Existing job gracefully...") # Or a simple print; print("...")
job.commit() # Only necessary if you are loading data from s3 and you have job bookmarks enabled.
os._exit(0) # Using a 0 status code throws no exception so your job completes with a succeeded status.
Run Code Online (Sandbox Code Playgroud)

但是,如果您想退出并出现错误,请使用:

sys.exit("Error Message...") # this will exit with an error message that will be displayed on the Glue UI -- Run Details --, and the job would have a status of failed. 
Run Code Online (Sandbox Code Playgroud)