【发布时间】:2021-08-17 02:02:10
【问题描述】:
我需要遍历 Hadoop 文件系统中的所有 csv 文件。我可以列出 HDFS 目录中的所有文件
> hadoop fs -ls /path/to/directory
Found 2 items
drwxr-xr-x - hadoop hadoop 2 2016-10-12 16:20 /path/to/directory/tmp
-rwxr-xr-x 3 hadoop hadoop 4691945927 2016-10-12 19:37 /path/to/directory/myfile.csv
并且可以使用
遍历标准目录中的所有文件for filename in /path/to/another/directory/*.csv; do echo $filename; done
但是我怎样才能将两者结合起来呢?我试过了
for filename in `hadoop fs -ls /path/to/directory | grep csv`; do echo $filename; done
但这给了我一些废话,比如
Found
2
items
drwxr-xr-x
hadoop
hadoop
2
2016-10-12
....
【问题讨论】:
-
hadoop fs -ls /path/to/directory | grep csv应该给你一个标准输出行的列表,不一定只是文件名。 -
在另一个问题中看到一个很好的循环方式:stackoverflow.com/questions/28685471/…