将文本文件从Spark保存到边缘节点

时间:2018-10-04 13:45:53

标签: scala apache-spark

我正在尝试将文本文件从spark保存到边缘节点。

要测试我的代码,我正在从hdfs中读取示例文件作为数据集并将其写入边缘节点。请在下面找到我的代码

val dataone = sparkSession.read.textFile("/user/projects/folder1/employee.txt")
 dataone.write.mode("append").format("text").save("file:///edge_node_folder1/edge_node_folder2/employee.txt")

在HDFS中,我的示例文件为文本文件格式。但是在边缘节点上,它被保存为命名为employee.txt的文件夹中的零件文件

有没有一种方法可以将文件另存为边缘节点上的文本文件(不在文件夹内),并且具有与路径中提到的名称相同的名称(在我的情况下,hadoop不会为其自动生成的名称为其零件文件提供名称)边缘节点,文本文件被保存为employee.txt文件夹中的

part-00000-808ccd9e-7b7d-4b63-88ae-782d40bb272f-c000.txt
_SUCCESS

1 个答案:

答案 0 :(得分:0)

使用“ toLocalIterator”可以手动创建单个文件:

val fos = new OutputStreamWriter(new FileOutputStream("/edge_node_folder1/edge_node_folder2/employee.txt"))
val it = dataone.toLocalIterator()
while (it.hasNext) {
  fos.write(it.next())
  fos.write(System.lineSeparator())
}
fos.close()