2015-10-28 76 views
1

如何捕获spark-submit作业的返回代码,我写了一个shell脚本来传递参数并运行spark与我的spark类一起提交,我用下面的代码来捕获返回代码,但它不工作。运行spark是我的shell脚本中的一个函数,它使用spark类和参数运行spark提交。在Unix shell脚本中捕获spark的返回代码

RunSpark 
 

 
ret_code=$? 
 
if [[ ${ret_code} != 0 ]]; then 
 
    exit ${ret_code} "Issue while executing spark class ${spark_class}" 
 
fi 
 

 
exit 0 echo "Script ran ok !"

回答

0

除了错误的比较操作-ne,回声和退出是单独的命令,它们不能在同一行。你也应该在退出之前调用echo,否则脚本将不会打印任何内容。这应该工作:

# generating random numbers from 0 to 3, just for testing purposes                          
ret_code=$(((RANDOM % 4) )) 

if [[ ${ret_code} -ne 0 ]]; then 
    echo "Issue while executing spark class ${spark_class}" 
    exit ${ret_code} 
fi 

echo "Script ran ok !" 
exit 0 
+0

工作就像一个魅力! –

0

您正在使用的字符串比较操作符!=,而不是那么数字-ne

应该

if [[ ${ret_code} -ne 0 ]]; then 
+0

不幸的是不幸... –