【发布时间】:2018-07-04 07:37:09
【问题描述】:
我正在尝试使用 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 消息:文件:/data/maildir/allen-p/inbox/1。 (无此文件或目录) StackTrace:在 java.io.FileInputStream.open0(本机方法) 在 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) 在 $$$82b5b23cea489b2712a1db46c77e458$$$$w$processEmail(:193)
如何使用 formFile 解决此错误?
谢谢
【问题讨论】:
-
您好,代码对我有用。一件事为什么你有“。”在“txt”之后的文件名中。此外 msgRDD 只是转换,它不会读取您的文件,尝试使用 msgRDD.collect() 在 sc.textFile 的情况下也会出现相同的错误。使用 val filename: String = "/data/text.txt" 作为 Source.fromFile。 file:// 那里不需要
-
那段时间是一个错字,所以 filename = "file:///data/text.txt" 我试图让 fromFile(filename) 工作。我用错了吗?我收到您在上面看到的错误。你能帮忙吗?
-
尝试使用下面的行 val lines = Source.fromFile("/data/text.txt").getLines.toArray 从 Source 读取时不要使用 file://
-
感谢工作。
-
怎么给你积分?
标签: scala apache-spark