test -e study && echo "exist!" || echo "not exist!"
最终的解决办法是将采用HDFS自己的命令去判断文件是够存在命令如下:
首先来看一下HDFS的命令行
hadoop fs -help
-test -[defsz] :
Answer various questions about , with result via exit status.
-d return 0 if is a directory.
-e return 0 if exists.
-f return 0 if is a file.
-s return 0 if file is greater than zero bytes in size.
-z return 0 if file is zero bytes in size, else return 1.
这里明明白白的写着我们执行命令文件的返回值:
从上面的输出可以看出,我们可以使用test命令来判断某个文件是否存在。如果文件存在,这个命令将返回0;反之则返回1。
[root@VM200-12 log]# hadoop fs -test -f /user/hive/warehouse/test.db/increat_table/*[root@VM200-12 log]# echo $?
0 -----文件存在则显示为0
下面是我的代码,当全量导入之后文件夹存在,这个时候文件夹存在则进行增量导入。反之
hadoop fs -test -d /user/hive/warehouse/test.db/increat_tableif [ $? -eq 0] ;then
echo'文件目录已经存在,执行增量导入'./increment.shelseecho'文件目录不存在,执行全量导入操作'./import_loan_base.sh
fi
参考内容链接如下;
https://blog.csdn.net/b6ecl1k7bs8o/article/details/80479800