就像在这个aws论坛的问题,我是同时运行两个工作。作业配置为 Max concurrency: 10
但在执行的时候 job.commit()
我收到此错误消息:
py4j.protocol.Py4JJavaError: An error occurred while calling z:com.amazonaws.services.glue.util.Job.commit.
: com.amazonaws.services.gluejobexecutor.model.VersionMismatchException:
Continuation update failed due to version mismatch. Expected version 6 but found version 7
(Service: AWSGlueJobExecutor; Status Code: 400; Error Code: VersionMismatchException; Request ID: 123)
这两个作业读取数据的不同部分。
但我不明白这里有什么问题,怎么处理。有人能帮忙吗?
1条答案
按热度按时间u4dcyp6a1#
报告@bgiannini在aws论坛的另一个问题中的回答,看起来“版本”是指工作书签。
如果同一个作业的多个示例同时运行(即max concurrency>1)并使用书签,则当job run 1运行job.init()时,它会得到一个版本,而job.commit()似乎期望某个值(我猜每个执行的job.commit的版本都是1)。如果作业运行2同时启动,并且从job.init()获得相同的初始版本,则在作业1之前提交job.commit(),则作业1不会增加到预期的版本。
事实上,我是在和
Job bookmark: Enable
. 事实上,当禁用书签,看起来是为我工作。我知道这可能不是最好的解决办法,但它可以是一个很好的妥协。