Spark - 在RDD之后自动创建与文本文件同名的文件夹?

时间:2018-05-04 17:33:08

标签: apache-spark hadoop rdd

我在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") 

然后,在定义路径后,我能够成功运行它。

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

当我走过这条路时,

enter image description here

为什么会这样?

1 个答案:

答案 0 :(得分:0)

user/root/hdpcd/Linecount2.txt的HDFS文件与/user/root/hdpcd/Linecount2.txt进行比较之间存在差异,(或者更简单的是hdpcd/Linecount2.txt,当您已经是root用户时)

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

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

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