我正在尝试通过scala合并HDFS中存在的3个文件。所有3个文件都存在于HDFS位置srcPath
中,如以下代码中所述。
创建了如下函数:
def mergeFiles(conf: Configuration, fs: FileSystem, srcPath: Path, dstPath: String, finalFileName: String): Unit {
val localfs = FileSystem.getLocal(conf)
val status = fs.listStatus(srcPath)
status.foreach(x =>
FileUtil.copyMerge(fs, x.getPath, localfs, new Path(dstPath.toString), false, conf, null)
}
最佳答案
copyMerge
的第二个参数是目录,而不是单个文件。
这应该工作:FileUtil.copyMerge(fs, srcPath, localfs, new Path(dstPath.toString), false, conf, null)
通常,阅读源代码是调试此类问题的最佳方法。
https://stackoverflow.com/questions/56285714/