【问题标题】:Spark - Folder with same name as text file automatically created after RDD?Spark - 与 RDD 后自动创建的文本文件同名的文件夹?
【发布时间】:2018-05-04 17:33:08
【问题描述】:

我在 hdfs 中放置了一个名为 Linecount2.txt 的文本文件,并构建了一个简单的 rdd 来使用 spark 计算行数。

val lines = sc.textFile("user/root/hdpcd/Linecount2.txt")
lines.count()

这行得通。

但是当我尝试使用具有上述路径的相同文本文件时,我收到错误:

 "org.apache.hadoop.mapred.InvalidInputException: Input path does not exist:"

当我查看该路径时,我可以看到创建了一个文件夹“Linecount.txt”。因此文件的路径现在是

("user/root/hdpcd/Linecount2.txt/Linecount2.txt") 

然后,在定义路径后,我就可以成功运行它了。

我第三次尝试这个,我得到了同样的错误,因为输入路径不存在。

当我走过这条路时,

为什么会这样?

【问题讨论】:

  • 请添加将文件放入文件夹的代码。您还没有向我们展示导致您的问题的代码。

标签: apache-spark hadoop rdd


【解决方案1】:

将 HDFS 文件放在 user/root/hdpcd/Linecount2.txt/user/root/hdpcd/Linecount2.txt 之间存在差异(或者,更简单地说,hdpcd/Linecount2.txt,当您已经是 root 用户时)

如果您要将文件放在当前用户帐户以外的绝对目录中,则前导斜杠非常重要,否则,这是默认设置。

您没有给出 hdfs put 命令,但这里的问题只是绝对路径和相对路径之间的区别。这不是 Spark 的问题

另外,hdfs put 会说如果您尝试将文件放在同一位置,则该文件已经存在,因此您能够上传两次的事实应该表明您的路径不正确

【讨论】:

    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2022-10-02
    相关资源
    最近更新 更多