气流中的全局变量



我正在尝试使用Airflow实现基本的ETL作业,但有一点很困难:

我有三个功能。我想为它们中的每一个定义全局变量,比如:

function a():
return a_result
function b():
use a
return b_result
function c():
use a and b

然后在CCD_ 1中使用这些函数。

像往常一样定义global a_result不起作用。有什么解决方案吗?

正如我在评论中所写,

当您在python_callable中返回某些内容时,如果您将任务上下文传递给下一个运算符,则可以访问返回的值。https://airflow.apache.org/concepts.html?highlight=xcom

以下是半伪代码,说明的想法

# inside a PythonOperator called 'pushing_task' 
def push_function(): 
return value 
# inside another PythonOperator where provide_context=True 
def pull_function(**context): 
value = context['task_instance'].xcom_pull(task_ids='pushing_task')
pushing_task = PythonOperator('pushing_task', 
push_function, ...)
pulling_task = PythonOperator('pulling_task', 
pull_function, 
provide_context=True ...)

相关内容

  • 没有找到相关文章

最新更新