我知道shell中的“ getmerge”命令可以完成这项工作。
但是,如果要在作业后通过HDFS API for Java合并这些输出,该怎么办?
我真正想要的是HDFS上的单个合并文件。
我唯一能想到的就是在那之后开始其他工作。
谢谢!
但是,如果要在作业后通过HDFS API for Java合并这些输出,该怎么办?
猜测,因为我没有尝试这样做我自己,但我认为你正在寻找的方法是FileUtil.copyMerge,这是方法,当你运行FsShell调用-getmerge
命令。FileUtil.copyMerge
以两个FileSystem对象作为参数-FsShell使用FileSystem.getLocal来检索目标FileSystem,但是我看不到您无法在目标上使用Path.getFileSystem来获取OutputStream的任何原因
就是说,我认为它不会给您带来太多好处-合并仍在本地JVM中进行。因此您并没有真正节省太多的-getmerge
后续费用-put
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句