我在Cloudera平台上的Spark中运行了这个scala和Java代码,其简单的任务是对HDFS中的文件执行Word计数。我的问题是:使用此代码段读取文件的区别是什么 -
sc.textFile(" HDFS://quickstart.cloudera:8020 /用户/火花/ INPUTFILE / inputText.txt&#34)
而不是通过cloudera平台从本地驱动器读取?
sc.textFile(" /home/cloudera/InputFile/inputText.txt")
在这两种情况下都不是使用HDFS保存文件,并且在任何方式读取/写入都不会有任何区别吗?这些都是对HDFS的读/写,对吧?我引用了这个帖子,但没有任何线索。 Cloudera Quickstart VM illegalArguementException: Wrong FS: hdfs: expected: file:
请您告诉我至少一个使用hdfs://隐含其他内容的案例?
谢谢!
答案 0 :(得分:0)
据我所知,
sc.textFile("hdfs://quickstart.cloudera:8020/user/spark/InputFile/inputText.txt")
hdfs://quickstart.cloudera:8020指的是HDFS目录或文件/user/spark/InputFile/inputText.txt。sc.textFile("/home/cloudera/InputFile/inputText.txt")
在这一行'/home/cloudera/InputFile/inputText.txt'指的是您当地的unix / linux文件系统。因此,如果您想使用/读/写入HDFS文件,那么您需要根据hadoop配置使用hdfs:// namenodeHost:port。
希望这能澄清你的怀疑!!