因此,我一直在使用python中的fabric包为各种hdfs任务运行shell脚本。
但是,每当我运行任务来检查hdfs中是否已经存在一个文件/目录时,它只会退出shell。下面是一个示例(我使用的是python3.5.2和fabric3==1.12.post1)
from fabric.api import local
local('hadoop fs -stat hdfs://some/nonexistent/hdfs/dir/')
如果目录不存在,则此代码生成
[localhost]本地:hadoop fs-stathdfs://some/nonexistent/hdfs/dir/ 统计:hdfs://some/nonexistent/hdfs/dir/':没有这样的文件或目录 致命错误:local()在执行'hadoop fs-stat'时遇到错误(返回代码1)hdfs://some/nonexistent/hdfs/dir/' 正在中止。 我也试过了
local('hadoop fs -test -e hdfs://some/nonexistent/hdfs/dir/')` 但也引起了同样的问题。
如何使用fabric生成一个布尔变量来告诉我hdfs中是否存在一个目录或文件?
1条答案
按热度按时间fgw7neuy1#
你可以检查一下
succeeded
从返回的结果对象的标志local
.