【问题标题】:How to provide a text file location in spark when file is on server文件在服务器上时如何在火花中提供文本文件位置
【发布时间】:2022-01-20 09:40:51
【问题描述】:

我正在学习如何在我的项目中实施 spark。我想在 spark shell 中运行命令-

val rddFromFile = spark.sparkContext.textFile("abc");

其中 abc 是文件位置。我的文件在远程服务器上,通过该远程服务器我正在打开 spark shell,我应该如何指定文件位置。 我试图将一个文本文件放在本地 C 驱动器中并提供读取该文件的位置,但它也没有用。我收到所有文件位置的类似错误。

错误:

    scala> val rddFromFile = spark.sparkContext.textFile("C:/Users/eee/Spark test/Testspark.txt")

rddFromFile: org.apache.spark.rdd.RDD[String] = C:/Users/eee/Spark test/Testspark.txt MapPartitionsRDD[1] at textFile at <console>:23

    scala>  rddFromFile.collect().foreach(f=>{
         |     println(f)
         |   })

org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme "C"
  at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:3281)
  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3301)
  at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:124)
  at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3352)
  at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3320)
  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:479)
  at org.apache.hadoop.fs.Path.getFileSystem(Path.java:361)
  at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:268)
  at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:239)
  at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:325)

【问题讨论】:

  • 将文件移动或复制到远程。

标签: scala apache-spark


【解决方案1】:

Spark 期望该文件存在于 Hadoop FS 中,因为它看起来像是在您的应用程序中设置的默认文件系统。 要从本地FS加载文件,你需要把它像

val rddFromFile = spark.sparkContext.textFile("file:///C:/Users/eee/Spark test/Testspark.txt")

当您在本地模式下运行 Spark 时,这将起作用。

如果您在集群中运行 Spark,则该文件必须存在于所有执行程序节点上。

【讨论】:

  • 我使用 spark-shell --master=local 在本地模式下启动了我的命令,并以上面评论中提到的格式使用了上面的文件位置,但它给了我错误 - “java.lang.IllegalArgumentException:java.net.URISyntaxException:索引 2 处的预期方案特定部分:C:........” 在搜索有关错误时尝试使用如下双斜杠但得到相同的错误. val rddFromFile = spark.sparkContext.textFile("file:///C://Users//eee//SparkTest//Testspark.txt")
猜你喜欢
  • 2022-09-23
  • 2012-06-06
  • 2015-12-20
  • 1970-01-01
  • 2017-12-09
  • 2018-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多