Mar*_*vin 6 python bash directed-acyclic-graphs airflow
我是Airflow的新手,并且与BashOperator苦苦挣扎。我想在dag.py中使用bash操作符访问shell脚本。
我检查了: 如何在Airflow中运行bash脚本文件, 而 BashOperator不运行bash文件apache airflow
关于如何通过bash运算符访问shell脚本的信息。
这是我所做的:
cmd = "./myfirstdag/dag/lib/script.sh "
t_1 = BashOperator(
task_id='start',
bash_command=cmd
)
Run Code Online (Sandbox Code Playgroud)
在运行配方并检查气流时,出现以下错误:
[2018-11-01 10:44:05,078] {bash_operator.py:77} INFO - /tmp/airflowtmp7VmPci/startUDmFWW: line 1: ./myfirstdag/dag/lib/script.sh: No such file or directory
[2018-11-01 10:44:05,082] {bash_operator.py:80} INFO - Command exited with return code 127
[2018-11-01 10:44:05,083] {models.py:1361} ERROR - Bash command failed
Run Code Online (Sandbox Code Playgroud)
不知道为什么会这样。任何帮助,将不胜感激。
谢谢 !
编辑注意:我假设它正在某个气流tmp位置而不是我提供的路径中搜索。但是,如何使它搜索正确的路径。
小智 7
尝试这个:
bash_operator = BashOperator(
task_id = 'task',
bash_command = '${AIRFLOW_HOME}/myfirstdag/dag/lib/script.sh '
dag = your_dag)
Run Code Online (Sandbox Code Playgroud)
您确定您定义的路径吗?
cmd = "./myfirstdag/dag/lib/script.sh "
Run Code Online (Sandbox Code Playgroud)
与标题。这意味着它是相对于您执行命令的路径。
你能试试这个吗?
cmd = "find . -type f"
Run Code Online (Sandbox Code Playgroud)