输入路径不存在

时间:2019-05-13 00:34:54

标签: scala apache-spark ubuntu

我是新来的火花。 我正在尝试运行我的第一个单词计数程序。但我无法开始 我输入:

scala> val input = sc.textFile("/home/amel/word.txt").collect()
org.apache.hadoop.mapred.InvalidInputException: Input path does not 
exist: file:/home/amel/word.txt
  at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:287)
  at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229)
  at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315)
  at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:204)
  at org.apache.spark.rdd.RDD.$anonfun$partitions$2(RDD.scala:253)
  at scala.Option.getOrElse(Option.scala:138)
  at org.apache.spark.rdd.RDD.partitions(RDD.scala:251)
  at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:49)
  at org.apache.spark.rdd.RDD.$anonfun$partitions$2(RDD.scala:253)
  at scala.Option.getOrElse(Option.scala:138)
  at org.apache.spark.rdd.RDD.partitions(RDD.scala:251)
  at org.apache.spark.SparkContext.runJob(SparkContext.scala:2126)
  at org.apache.spark.rdd.RDD.$anonfun$collect$1(RDD.scala:945)
  at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
  at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
  at org.apache.spark.rdd.RDD.withScope(RDD.scala:363)
  at org.apache.spark.rdd.RDD.collect(RDD.scala:944)
  ... 49 elided

请帮助。

1 个答案:

答案 0 :(得分:0)

该错误是很容易解释的,因此很可能是您遗失的简单信息。您可以修改脚本并按如下所示运行它吗?

请将“ fileName”值修改为您认为文件所在的位置。

import java.nio.file.{Paths, Files}
import sys.process._

/************ Modify this line with your data's file name **************/
val fileName = "/home/gmc/exists.csv"

if (Files.exists(Paths.get(fileName))) {
  sc.textFile(fileName).take(5).foreach(println)
} else {
  s"ls -l ${Paths.get(fileName).getParent}".!
}

如果使用存在的文件运行它,它将显示该文件的某些内容。如果该文件不存在,它将给出父目录的目录列表。

希望这将帮助您解决问题所在。如果您不能使用以上方法解决问题,请将上述脚本的 entire 输出添加到您的原始问题中。