Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception 气流中通过异常_Exception_Airflow - Fatal编程技术网

Exception 气流中通过异常

Exception 气流中通过异常,exception,airflow,Exception,Airflow,我是Apache Airflow的新手,我计划使用BashOperator类运行Python和R脚本文件。我想了解异常在两种情况下应该如何工作: 1.R或Python脚本由于某种原因失败;或 2.R或Python脚本已完成,但我希望在DAG继续执行下一个任务之前需要人工输入 我有两个非常基本的问题: 1.如何将异常从R或Python脚本文件传递到bash操作符和DAG?例如,对R脚本文件的调用是否应该位于BashOperator中的try块内? 2.如何传递自定义异常(警告?错误?),以便即使R

我是Apache Airflow的新手,我计划使用BashOperator类运行Python和R脚本文件。我想了解异常在两种情况下应该如何工作:
1.R或Python脚本由于某种原因失败;或
2.R或Python脚本已完成,但我希望在DAG继续执行下一个任务之前需要人工输入

我有两个非常基本的问题:
1.如何将异常从R或Python脚本文件传递到bash操作符和DAG?例如,对R脚本文件的调用是否应该位于BashOperator中的try块内?
2.如何传递自定义异常(警告?错误?),以便即使R或Python脚本成功完成,也可以暂停DAG的执行


如果您能告诉我气流异常处理的例子,我将不胜感激。

请忘记您正在使用任何气流操作器

只需假设您正在编写一个运行R或Python脚本的Bash脚本

案例1:Python脚本失败时失败的Bash脚本:

set -e
python test_file.py
python test_file.py || exit 0
案例2:即使Python脚本失败也会通过的Bash脚本:

set -e
python test_file.py
python test_file.py || exit 0
现在只需在BashOperator中传递上面的一个bash脚本


基本上,
Bash操作符
只运行正常的Bash命令/脚本,并传递脚本的日志和退出状态。在案例1中,您的气流任务也将失败,而在案例2中,气流任务将失败。

太棒了,谢谢。因此,如果命令失败,“set-e”将退出,如果脚本的退出状态为非零,“exit 0”也将通过。您写道bash操作符“传递日志并退出状态”——如何访问DAG中的日志?在案例2中,“0”是唯一传递的信息吗?或者我如何传递一个警告,比如“继续之前检查结果?”bash操作符将记录整个stdout。如果传递
xcom\u push=True
,则在bash命令完成时,写入stdout的最后一行也将被推送到xcom。这可以在下一个下游任务中使用Xcom Pull访问。例子: