我正在尝试使用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解决此错误?
由于
答案 0 :(得分:1)
问题在于文件名格式。使用file://
时,您不需要使用Source.fromFile
作为文件路径。尝试使用以下代码进行阅读
val filename: String = "/data/text.txt"
val lines = Source.fromFile(filename).getLines.toArray