Airflow如何从python运算符创建数据流作业?

时间:2019-01-28 11:28:40

标签: python google-cloud-platform airflow apache-beam dataflow

当我在命令行中使用直接运行器或数据流运行器运行Beam管道时,它工作正常...

示例:

$ python my_pipeline.py --key /path/to/gcp/service/key.json --project gcp_project_name

但是当我尝试使用气流时,我有两个选择,bash运算符或python运算符。

使用bash运算符会成功,但会限制我使用气流功能的能力。

但是我想做的是将其作为python运算符运行。因此,我将模块导入到气流dg文件中,然后以python运算符的方式运行。

如果我使用本地运行器,它也可以正常工作,但是当我将其更改为数据流运行器时,在GCP数据流上创建具有此错误的作业后,它将失败

ImportError: No module named airflow.bin.cli

Airflow python 操作员创建数据流作业时我缺少什么?

1 个答案:

答案 0 :(得分:0)

好的, 那不是完美的解决方案,但是您可以使用

DataFlowPythonOperator()

将运行我们之前提到的完全相同的bash命令。 这是一种解决方法,不等于PythonOperator,而更像是运行BashOperator ... 在当前情况下(例如xcom)仍然无法使用Airflow功能的强大功能... Docs