gpt4 book ai didi

Java将HDFS中的文件复制到HDFS中的另一个目录

转载 作者:可可西里 更新时间:2023-11-01 14:21:39 25 4
gpt4 key购买 nike

我正在使用此链接中的示例 here将内容从 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_code 下创建一个新目录,文件最终位于 hdfs://HANameService/staging/hpm_support/apc_code/apc_code 我怎样才能让它不创建该子目录?

最佳答案

您需要列出源目录中的文件,并使用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<LocatedFileStatus> sourceFiles = fs.listFiles(source, true);
if(sourceFiles != null) {
while(sourceFiles.hasNext()){
FileUtil.copy(fs, sourceFiles.next().getPath(), fs, target, true, conf);
}
}

希望对你有帮助

关于Java将HDFS中的文件复制到HDFS中的另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44093376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com