在hdfs中列出文件并将输出附加到文本文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在hdfs中列出文件并将输出附加到文本文件相关的知识,希望对你有一定的参考价值。

我想根据条件列出hadoop中的文件,并将输出附加到文本文件。以下是我正在使用的命令

hadoop fs -ls /path/ | grep 'xxx' | awk '{print $8}' >> /hdfs_path/test.txt

当我执行上面的命令时,它说下面的错误

-bash:/hdfs_path/test.txt:没有这样的文件或目录

但该文件存在于目录中。

答案

问题是stdout重定向只知道你的本地文件系统,并且对Hadoop一无所知,也不能原生地写入它。您需要坚持使用hadoop fs或更新的hdfs dfs命令进行hdfs交互。

尝试使用appendToFile作为你的管道命令。

用法:hdfs dfs -ls /your/hdfs/path | grep 'xxx' | hdfs dfs -appendToFile - hdfs://your.hdfs.system/your/hdfs/path/paths.txt

我唯一的另一种选择是将输出保存到本地文件系统,并在完成后将其上传到HDFS(如果需要)。

以上是关于在hdfs中列出文件并将输出附加到文本文件的主要内容,如果未能解决你的问题,请参考以下文章

列出路径中的所有目录,并将信息保存到文本文件中

将文本文件附加到 char 数组,接收垃圾输出

Python:读取文本文件并将其中列出的目录复制/粘贴到新目录

遍历目录树并将日期戳附加到文件名

如何列出 CSV 文件中的各个列?

使用 pyspark 更改分隔符并将其保存为 HDFS 中的文本文件