我正在尝试在hadoop HDFS中对不符合以下模式的文件进行cat
hdfs dfs -cat /*.gz
如何对所有不以.gz结尾的文件进行cat?编辑:抱歉,我需要在Hadoop中对文件进行cat,显然hdfs的命令很少。编辑2:所有文件都在root中。
2skhul331#
hdfs似乎不支持扩展的globbing语法,因此您需要手动提取要连接的文件的名称。您可以从listing all of the files in the root directory开始
hdfs
$ hdfs dfs -stat '%n" '/*'
然后,过滤出以.gz结尾的文件:
.gz
$ hdfs dfs -stat '%n" '/*' | grep -v '.gz$'
最后,将过滤后的文件名传递给hdfs dfs -cat
hdfs dfs -cat
$ hdfs dfs -stat '%n" '/*' | grep -v '.gz$' | xargs hdfs dfs -cat
请注意,如果传递给hdfs dfs -cat的文件路径的总长度超过limits supported by your environment,则可能会中断。
1条答案
按热度按时间2skhul331#
hdfs
似乎不支持扩展的globbing语法,因此您需要手动提取要连接的文件的名称。您可以从listing all of the files in the root directory开始
然后,过滤出以
.gz
结尾的文件:最后,将过滤后的文件名传递给
hdfs dfs -cat
请注意,如果传递给
hdfs dfs -cat
的文件路径的总长度超过limits supported by your environment,则可能会中断。