【问题标题】:Error using fromFile使用 fromFile 时出错
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 1970-01-01
    • 2014-09-20
    • 2022-01-08
    • 1970-01-01
    • 2017-08-12
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多