Входной путь не существует - PullRequest
0 голосов
/ 13 мая 2019

Я новичок в искре. Я пытаюсь запустить свою первую программу подсчета слов. Но я не могу заставить это начать Я набрал:

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 голосов
/ 13 мая 2019

Ошибка довольно очевидна, поэтому вероятно что-то простое, что вы упускаете.Можете ли вы изменить свой скрипт и запустить его, как показано ниже.

Пожалуйста, измените значение "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}".!
}

Если вы запускаете его с файлом, которыйсуществует, он будет отображать часть содержимого этого файла.Если файл не существует, он выдаст список родительского каталога.

Надеюсь, это поможет вам разобраться в чем проблема.Если вы не можете найти решение, используя приведенное выше, добавьте вывод whole из приведенного выше сценария в исходный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...