我正在查看一个hadoop文件系统。用命令 hadoop fs -ls /path/to/dir1*
我会浏览每一个以 dir1
并归还他们的档案
输出类似于
Found 1 items
-rw-r--r-- 3 sys_blah_blah moredate /path/to/dir10/file1.py
Found 1 items
-rw-r--r-- 3 sys_blah_blah moredate /path/to/dir10/file2.py
Found 1 items
-rw-r--r-- 3 sys_blah_blah moredate /path/to/dir10/file3.py
Found 1 items
-rw-r--r-- 3 sys_blah_blah moredate /path/to/dir11/file1.py
Found 1 items
-rw-r--r-- 3 sys_blah_blah moredate /path/to/dir11/file2.py
...
我唯一感兴趣的信息是文件路径部分。如何仅将路径存储到另一个文件中?理想情况下,我希望一个文件的输出只有该文件中的路径。
最初,我考虑运行命令并将其输出存储到一个文件中,然后解析新文件,用regex获取路径并将其放入一个新文件中,但这似乎没有必要。
3条答案
按热度按时间xu3bshqb1#
你可以利用
grep
从那以后hadoop fs -ls
几乎没有提供任何有用的选择。如果每个路径只需要一个条目,只需将其传递给
uniq
. 如:看起来很简单。
lsmd5eda2#
hadoop文件系统api(org.apache.hadoop.fs)可用于从java(任何其他兼容语言)检索hdfs数据,并可执行后续操作(regex)。
http://hadoop.apache.org/docs/stable/api/
nle07wnf3#
我不太明白你的问题,但诸如此类的事情应该让你开始