我需要将HDFS中3个不同数据帧写入的文件合并到一个文件中,最后将它们放到本地文件系统中。
此任务是Unix shell上普通Hadoop命令中的儿童游戏。对我来说,使用Python要容易得多。但是我需要在Scala中完成;到目前为止,我还是新手。需要一些提示。
以下是到目前为止生成文件的步骤: 标头:
Seq(header).toDS.write.format("text").save(s"/path/to/header")
它将创建一个标题文件夹和一个包含标题详细信息的文件。
数据:
dataDF.map(c => c.mkString("|")).coalesce(1).write.format("text").save(s"/path/to/main/file")
这将在另一个路径中创建1个数据文件。
预告片:
Seq(trailer).toDS.write.format("text").save(s"/path/to/trailer")
标头和标尾都各占一行。合并到一个文件中的计划是header + data + trailer
。然后将文件放到本地。
任何提示,要在scala中完成此操作?如果不是,则是否有人可以共享如何在getMerge
中调用Hadoop特定的Unix方法,例如scala
等。那也可以做。