我在cloudera平台上的spark中运行了scala和java代码,其简单任务是对hdfs中的文件执行字数统计。我的问题是:用这个代码段读取文件有什么区别-
sc.textfile(“hdfs://quickstart.cloudera:8020/user/spark/inputfile/inputtext.txt“)
与通过cloudera平台从本地驱动器读取不同?
sc.textfile(“/home/cloudera/inputfile/inputtext.txt”)
在这两种情况下,文件都是用hdfs保存的,读写两种方式都不会有任何区别?它们都读/写hdfs,对吗?我引用了这条线索,但没有线索。cloudera quickstart vm illegalarguementexception:错误的fs:hdfs:应为:文件:
你能至少告诉我一个使用hdfs://意味着其他东西的例子吗?
谢谢您!
1条答案
按热度按时间envsm3lx1#
据我所知,
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文件,那么您需要使用hdfs://namenodehost:端口符合hadoop配置。
希望这能澄清你的疑问!!