java将hdfs中的文件复制到hdfs中的另一个目录

92vpleto  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(1292)

我使用这个链接中的示例将内容从hdfs中的一个目录复制到hdfs中的另一个目录。文件的复制是可行的,但是它在目标目录中创建了一个新的子目录,而不是仅仅将文件复制到目标目录。例子:

Path source=new Path("hdfs://HANameService/sources/hpm_support/apc_code/");
  Path target=new Path("hdfs://HANameService/staging/hpm_support/apc_code/");
  FileSystem fs = source.getFileSystem(conf); 
  FileUtil.copy(fs, source, fs, target, true, conf);`

所以不是把文件复制到 hdfs://HANameService/staging/hpm_support/apc_code 它在apc\u代码下创建了一个新的dir,文件以 hdfs://HANameService/staging/hpm_support/apc_code/apc_code 我怎样才能让它不创建子目录呢?

zujrkrfu

zujrkrfu1#

你需要 list 文档中的文件 source directory 以及 copy 每个文件使用 iterator ```
Path source=new Path("hdfs://HANameService/sources/hpm_support/apc_code/");
Path target=new Path("hdfs://HANameService/staging/hpm_support/apc_code/");
FileSystem fs = source.getFileSystem(conf);
RemoteIterator sourceFiles = fs.listFiles(source, true);
if(sourceFiles != null) {
while(sourceFiles.hasNext()){
FileUtil.copy(fs, sourceFiles.next().getPath(), fs, target, true, conf);
}
}

希望对你有帮助

相关问题