我需要遍历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
Run Code Online (Sandbox Code Playgroud)
并且可以循环遍历标准目录中的所有文件
for filename in /path/to/another/directory/*.csv; do echo $filename; done
Run Code Online (Sandbox Code Playgroud)
但我怎么能把这两者结合起来呢?我试过了
for filename in `hadoop fs -ls /path/to/directory | grep csv`; do echo $filename; done
Run Code Online (Sandbox Code Playgroud)
但这给了我一些废话
Found
2
items
drwxr-xr-x
hadoop
hadoop
2
2016-10-12
....
Run Code Online (Sandbox Code Playgroud)
小智 12
这应该工作
for filename in `hadoop fs -ls /path/to/directory | awk '{print $NF}' | grep .csv$ | tr '\n' ' '`
do echo $filename; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8307 次 |
| 最近记录: |