我在Windows机器上本地安装了hadoop和spark。
我可以访问hadoop中的HDFS文件,例如
hdfs dfs -tail hdfs:/out/part-r-00000
按预期工作。但是,如果我尝试从spark shell访问同一个文件,例如
val f = sc.textFile("hdfs:/out/part-r-00000")
我收到文件不存在的错误。但是,Spark可以使用file:/ ...语法访问Windows文件系统中的文件。
我已将HADOOP_HOME环境变量设置为c:\ hadoop,这是包含hadoop安装的文件夹(特别是winutils.exe,它似乎是spark所必需的,位于c:\ hadoop \ bin中)。
因为似乎HDFS数据存储在c:\ tmp文件夹中,所以我想知道是否有办法让火花知道这个位置。
非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
如果您的文件不存在,则表示您的spark应用程序(代码段)能够连接到HDFS。 您使用的HDFS文件路径似乎有误。
这可以解决您的问题
val f = sc.textFile("hdfs://localhost:8020/out/part-r-00000")