Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 使用fromFile时出错_Scala_Apache Spark - Fatal编程技术网

Scala 使用fromFile时出错

Scala 使用fromFile时出错,scala,apache-spark,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,

我正在尝试使用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:at 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解决此错误


谢谢

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

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

嗨,代码对我有用。有一件事是为什么在文件名的“txt”后面有“.”。另外,msgRDD只是转换,它不会读取您的文件,请尝试使用msgRDD.collect(),如果使用sc.textFile,您也会收到相同的错误。对Source.fromFile使用val filename:String=“/data/text.txt”。file://是不需要的,因为句点是一个输入错误,所以文件名=”file:///data/text.txt“我正在尝试使fromFile(文件名)正常工作。我用错了吗?我会像你上面看到的那样出错。你能帮忙吗?试着在下面的行中使用val lines=Source.fromFile(“/data/text.txt”)。getLines.toArray在读取源代码时不要使用file://谢谢,这很有效。如何给你打分?