hadoop - 使用通配符检查文件是否存在于 hdfs 中

标签 hadoop

我想检查一个文件是否存在于 hdfs 中。我正在使用

if $(hadoop fs -test -e $myfilewithpath) ; then echo "ok";else echo "not ok"; fi

现在我收到类似

的错误消息

test: `/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07/part-m-*.avro': No such file or directory
not ok

我在路径中期望的文件可以是任何映射器输出文件,即它可以是 part-m-00000.avro 或者它可以是 part-m-00099.avro 这就是我在搜索中使用 * 的原因,例如 part-m-*.avro

但是我们可以消除下面的消息并只得到输出 not ok

test: `/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07/part-m-*.avro': No such file or directory

最佳答案

我可以通过下面的代码解决它

if $(hadoop fs -ls $tilldirectorypath|grep "part-m-*.avro") ; then echo "ok";else echo "not ok"; fi

Where tilldirectorypath=/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07

And previous path defined as myfilewithpath=/data/bi/udm/incoming/Viewership/year=2016/month=02/day=26/hour=07/part-m-*.avro

关于hadoop - 使用通配符检查文件是否存在于 hdfs 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659371/

相关文章:

python - 必填字段 'sessionHandle' 未设置!在将配置单元与 python 一起使用时

hadoop - 我的 pig 拉丁文字中的错误

hadoop - Apache Kylin- “Timeout visiting cube”和其他怪异现象

hadoop - 在本地运行hadoop作业的问题

sql - 如何使用 hive 或 pig 使行数据成为源和目标之字形

hadoop - HDP 2.2手动安装namenode格式-参数数量错误?

java - 在 Hadoop 分布式缓存中创建和放置文件

hadoop - 上传文件到HDFS会自动分布式存储文件吗?

hadoop - 免费提供的真实公共(public)数据

hadoop - 如何从配置单元表列表中选择最后一个表?