使用fromFile

时间:2018-01-25 05:43:48

标签: scala apache-spark

我正在尝试使用fromFile,但是我收到了错误。该文件存在,可以使用sc.textFile打开,但如果我使用相同的路径打开同一个文件,formFile会出错。这是我的代码:

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import java.io.File
import scala.io.Source

val filename: String = "file:///data/text.txt"

// this works, no error and the file is opened
val msgRDD = sc.textFile(filename);

// errors with this line, see below.  The same file and same path
val lines = Source.fromFile(filename).getLines.toArray

以下是错误

  

名称:java.io.FileNotFoundException       消息:file:/ data / maildir / allen -p / inbox / 1。 (没有相应的文件和目录)       StackTrace:at java.io.FileInputStream.open0(Native Method)         在java.io.FileInputStream.open(FileInputStream.java:195)         在java.io.FileInputStream。(FileInputStream.java:138)         在scala.io.Source $ .fromFile(Source.scala:91)         在scala.io.Source $ .fromFile(Source.scala:76)         在scala.io.Source $ .fromFile(Source.scala:54)         at $$$ 82b5b23cea489b2712a1db46c77e458 $$$$ w $ processEmail(:193)

如何使用formFile解决此错误?

由于

1 个答案:

答案 0 :(得分:1)

问题在于文件名格式。使用file://时,您不需要使用Source.fromFile作为文件路径。尝试使用以下代码进行阅读

val filename: String = "/data/text.txt"
val lines = Source.fromFile(filename).getLines.toArray