Google cloud platform GCP Composer-如何运行Python 3而不是Python 2
我正在使用GCP Composer来编排ETL 创建实例时,我将Python版本设置为Python 3 使用DataFlowPythonOperator的任务之一,如果从本地开发人员docker实例启动,它可以正常工作(Airflow v1.10.1+Python 3.6.9) 如果我从运行Airflow v1.10.1的Docker映像运行它,它将使用Apache Beam Python 3.6 SDK 2.16.0 每当我们部署到composer-1.7.9-aiffair-1.10.1时,任务都会使用Python 2.7运行 如果从Composer启动,它还始终使用Google Cloud Dataflow SDK for Python 2.5.0运行数据流作业Google cloud platform GCP Composer-如何运行Python 3而不是Python 2,google-cloud-platform,google-cloud-dataflow,airflow,google-cloud-composer,Google Cloud Platform,Google Cloud Dataflow,Airflow,Google Cloud Composer,我正在使用GCP Composer来编排ETL 创建实例时,我将Python版本设置为Python 3 使用DataFlowPythonOperator的任务之一,如果从本地开发人员docker实例启动,它可以正常工作(Airflow v1.10.1+Python 3.6.9) 如果我从运行Airflow v1.10.1的Docker映像运行它,它将使用Apache Beam Python 3.6 SDK 2.16.0 每当我们部署到composer-1.7.9-aiffair-1.10.1时,
作曲家默认考虑Python版本2.7,这会破坏很多转换…
我找不到一种方法来配置Composer以使用Python3.x创建和运行数据流作业 命令:$ gcloud composer environments describe etl --location us-central1
结果:
softwareConfig:
imageVersion: composer-1.7.9-airflow-1.10.1
pythonVersion: '3'
Composer环境的Python版本与执行数据流作业的Python版本无关 目前,DataflowPythonOperator将Python版本硬编码为2。有一个已提交的修复程序,但尚未发布。您可以等待带有应用修复程序的Airflow版本的发布,也可以按照本手册第二部分中的详细说明对其进行后置端口 还请注意,您必须将ApacheBeamSDK包含到Composer环境的Python包中。由于2.16.0是第一个正式支持Python 3的版本,我建议在包列表中指定
ApacheBeam==2.16.0
至于为什么可以在本地气流设置中启动Python 3中的作业,我怀疑那里的
Python
命令默认为Python 3。我遵循了几个步骤解决了这个问题:
在这种情况下,我需要在composer环境中安装ApacheBeam,这不是我想要的。。。当使用可用的DataFlowPythonOperator时,它会使用python2.7运行作业,这可以处理简单的任务。但是,当我们有更复杂的转换时,它会中断…您是否尝试过解决问题的方法?不必在Composer内部显式安装ApacheBeam,它就可以正常工作。