我有多个文件存储在HDFS中,我需要使用spark将它们合并到一个文件中。但是,因为此操作经常(每小时)完成。我需要将这些多个文件附加到源文件中。
我发现有一个FileUtil可以提供' copymerge'功能。但它不允许附加两个文件。
感谢您的帮助
答案 0 :(得分:1)
您可以使用以下两种方法执行此操作:
sc.textFile("path/source", "path/file1", "path/file2").coalesce(1).saveAsTextFile("path/newSource")
或者正如@Pushkr提议的那样
new UnionRDD(sc, Seq(sc.textFile("path/source"), sc.textFile("path/file1"),..)).coalesce(1).saveAsTextFile("path/newSource")
如果您不想创建新来源并每小时覆盖相同的来源,则可以使用带保存模式的数据框覆盖(How to overwrite the output directory in spark)