如何使用scala在边缘节点中读取.text文件

时间:2018-04-17 11:08:25

标签: scala apache-spark

如何使用Scala在边缘节点中读取.text文件。

def main(args: Array[String]) {
  val srcFile=sc.textFile("file://home//viji.palanisamy//dev//kpi_library//EDI//Prof_test1").toString()
  readFile(srcFile)
}

def readFile(filename: String) = {
  val bufferedSource = Source.fromFile(filename)
  println("bufferedSource"+bufferedSource)
}

收到错误的文件,例如找不到文件。有没有解决方案使用Scala从节点读取文本。

1 个答案:

答案 0 :(得分:0)

  

是否有任何解决方案可以使用Scala从节点读取文本。

除非你想在本地阅读文件,否则使用标准IO工具(Read entire file in Scala?)和parallelize就没有了。

您必须将文件分发到每个执行程序节点或将其放在分布式存储中。

此处显示的技巧https://stackoverflow.com/a/47845360/9658417 user8371915

import org.apache.spark.SparkFiles

val filename: String = ???
sc.addFile(filename)

val srcFile=sc.textFile(SparkFiles.get(filename))

但是,如果你想要的只是读取驱动程序上的本地文件,请跳过textFile部分并且仅:

Source.fromFile(filename)