gpt4 book ai didi

java - 将本地目录的内容复制到hdfs中的目录

转载 作者:行者123 更新时间:2023-12-02 21:59:26 25 4
gpt4 key购买 nike

我有一个要求,我应该能够将目录的内容从本地系统复制到HDFS上的目录。

条件是仅目录内容应复制到我指定的位置,而不是源目录本身。使用copyfromlocal命令可以实现这一点。但是我需要使用Java。有一种方法copyFromLocalFile可用于从本地文件系统进行复制,问题是它会复制目录本身。还尝试使用FileUtils.copy方法,得到与copyFromLocalFile相同的结果

作为测试,我尝试将目录内容从测试目录复制到另一个目录(均在本地文件系统上)。我使用了FileUtils.copyDirectory。这可行,但是我不能将其用于HDFS。我已经看到许多与此问题相关的链接,但找不到任何方法。

伙计们,能否请您告诉我这是否可行,或者是否存在设计缺陷?如果可能的话,我该如何进行?

最佳答案

是的,用FileSystem api完全按照您想要的方式完成工作确实很困难。文档不足会使事情变得更加困难(方法太多,解释很少)。我一年前也遇到过同样的问题。

我得到的唯一解决方案是迭代:

void copyFilesToDir(String srcDirPath, FileSystem fs, String destDirPath)
throws IOException {
File dir = new File(srcDirPath);
for (File file : dir.listFiles()) {
fs.copyFromLocalFile(new Path(file.getPath()),
new Path(destDirPath, file.getName()));
}
}

我认为代码几乎不需要解释。

关于java - 将本地目录的内容复制到hdfs中的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096366/

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