Scala 将apache spark文本文件转换为字符串

Scala 将apache spark文本文件转换为字符串,scala,apache-spark,Scala,Apache Spark,在上面的代码片段中,我试图使ApacheSpark并行化读取一个巨大的文本文件。 如何将其内容存储到字符串中 我之前做这件事是为了读书 val test= sc.textFile(12,logFile).cache() 但现在我正试图使用spark上下文加快读取速度。收集值,然后迭代它们: val lines = scala.io.Source.fromFile(logFile, "utf-8").getLines.mkString 通过Spark将文件读入字符串的速度不太可能比直接读入快-

在上面的代码片段中,我试图使ApacheSpark并行化读取一个巨大的文本文件。 如何将其内容存储到字符串中

我之前做这件事是为了读书

val test= sc.textFile(12,logFile).cache()

但现在我正试图使用spark上下文加快读取速度。

收集值,然后迭代它们:

val lines = scala.io.Source.fromFile(logFile, "utf-8").getLines.mkString

通过Spark将文件读入字符串的速度不太可能比直接读入快-要在Spark中高效工作,您应该将所有内容保持在RDD格式,并以这种方式进行处理,最后只减少到一个(小)值。在Spark中读取它只意味着您将在本地将它读入内存,序列化块并将它们发送到集群节点,然后再次序列化它们以将它们发送回本地计算机并将它们聚集在一起。火花是一种强大的工具,但它并不神奇;它只能并行化实际并行的操作。(您知道将文件读入内存是瓶颈吗?在优化之前始终进行基准测试)

但要回答你的问题,你可以使用

  var string = ""
  test.collect.foreach({i => string += i} )

只是不要期望它比本地读取文件快。

日志文件在哪里?(哪个文件系统?)测试正在Ubuntu上运行。
lines.toLocalIterator.mkString