Airflow GlueJob 操作员创建 Python2 作业

问题描述 投票:0回答:1

我正在尝试使用以下代码从 Apache Airflow 运行 Glue 作业:

with TaskGroup(group_id= DAG_NAME + '_group', dag=dag) as tg:
    for job in jobs_params:

        glue = GlueJobOperator(
            task_id=f'run_{job["name"]}',
            job_name=job["name"],
            script_location=job["script_location"],
            script_args=job["script_args"],
            aws_conn_id='glue_job_conn',
            region_name='us-east-1',
            iam_role_name="AWSGlueServiceRoleReadS3",
            create_job_kwargs={"Command": {"PythonVersion": "3"},
                                "GlueVersion": "4.0", "WorkerType": "G.1X", "NumberOfWorkers": 2},
            deferrable=False,
            verbose=True,
            
            dag=dag,
        )  

我已经尝试了一切,但我不断收到以下错误:

LAUNCH ERROR | Python 2 is not supported with this glue versionPlease refer logs for details.

我错过了什么?我不明白为什么它首先要尝试使用 Python2 创建工作。但即使使用

create_job_kwargs
问题也没有解决。

amazon-web-services apache-spark pyspark airflow aws-glue
1个回答
0
投票

所以,我发现发生了什么事:当您第一次创建粘合作业时,重新运行 DAG 不会“覆盖”它。然后,因为我第一次运行 DAG 时没有参数

create_job_kwargs={"Command": {"Name":"glueetl", "PythonVersion": "3", "ScriptLocation": job["script_location"]},
                            "GlueVersion": "4.0", "WorkerType": "G.1X", "NumberOfWorkers": 2}.

它使用 Python 2 创建了一个 GlueJob。我必须删除作业并使用正确的参数重新运行 DAG,它成功了!

© www.soinside.com 2019 - 2024. All rights reserved.