我在HDFS /user/Cloudera/Test/*
中有一些数据。我可以通过运行hdfs -dfs -cat Test/*
来查看记录。
现在是同一个文件,我需要在scala中将其作为RDD读取。 我在scala shell中尝试了以下内容。
val file = sc.textFile("hdfs://quickstart.cloudera:8020/user/Cloudera/Test")
然后我写了一些过滤器和for循环来读取单词。但是当我最后使用Println
时,它说找不到文件。
任何人都可以帮助我知道在这种情况下HDFS网址是什么。 注意:我使用的是Cloudera CDH5.0 VM
答案 0 :(得分:2)
如果您尝试在spark作业中访问您的文件,那么您只需使用URL
即可val file = sc.textFile("/user/Cloudera/Test")
Spark会自动检测到这个文件。您不需要添加localhost作为前缀,因为默认情况下spark作业从HDFS目录中读取它们。
希望这可以解决您的问题。
答案 1 :(得分:0)
而不是使用" quickstart.cloudera"和端口,只使用IP地址:
val file = sc.textFile("hdfs://<ip>/user/Cloudera/Test")