将字符串保存到HDFS会为每个字符创建换行符

时间:2014-11-17 15:38:58

标签: scala hdfs apache-spark

我有一个纯文本文件,我正在从我的本地系统中读取,我正在上传到HDFS。我有Spark / Scala代码读取文件,将文件转换为字符串,然后我使用saveAsTextFile函数指定我想要保存文件的HDFS路径。注意我正在使用coalesce函数,因为我想保存一个文件,而不是文件被拆分。

import scala.io.Source

val fields = Source.fromFile("MyFile.txt").getLines
val lines = fields.mkString

sc.makeRDD(lines).coalesce(1, true).saveAsTextFile("hdfs://myhdfs:8520/user/alan/mysavedfile") 

我已经将代码成功保存到HDFS了,不幸的是,由于某些原因,我的字符串中的每个字符都有一个换行符。

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

我无法按照我的意愿完成这项工作,但我确实想出了一个解决方法。我在本地保存了设备,然后通过Scala调用shell命令将完成的文件上传到HDFS。非常直截了当。

如果有人能告诉我如何将字符串直接复制到HDFS中的文件中,仍然会感激。