hadoop datacopy中的getmerge命令

nxagd54h  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(358)

我的目标是读取目录中以“trans”开头的所有文件,并将它们转换为单个文件,然后将单个文件加载到hdfs位置
我的源目录是/user/cloudera/inputfiles/
假设在上面的目录中,有很多文件,但我需要所有以“trans”开头的文件
我的目标目录是/user/cloudera/transfiles/
所以我尝试了下面的命令

hadoop dfs - getmerge /user/cloudera/inputfiles/trans* /user/cloudera/transfiles/records.txt

但是上面的命令不起作用。
如果我尝试下面的命令,那么它的工作

hadoop dfs - getmerge /user/cloudera/inputfiles   /user/cloudera/transfiles/records.txt

关于如何合并某个hdfs位置的一些文件并将合并的单个文件存储在另一个hdfs位置,有什么建议吗

iyr7buue

iyr7buue1#

下面是getmerge命令的用法:

Usage: hdfs dfs -getmerge <src> <localdst> [addnl]

Takes a source directory and a destination file as input and 
concatenates files in src into the destination local file. 
Optionally addnl can be set to enable adding a newline character at the
end of each file.

它需要directory作为第一个参数。
您可以这样尝试cat命令:

hadoop dfs -cat /user/cloudera/inputfiles/trans* > /<local_fs_dir>/records.txt
hadoop dfs -copyFromLocal /<local_fs_dir>/records.txt /user/cloudera/transfiles/records.txt

相关问题