【发布时间】:2018-05-24 10:43:35
【问题描述】:
我尝试在集群上运行sc.texfile("file:///.../myLocalFile.txt"),并在worker上运行java.io.FileNotFoundException。
所以我搜索了一下,发现sc.addFile / SparkFiles.get 将文件上传给每个工人。
这是我的代码:
sc.addFile("file:///.../myLocalFile.txt")
val input = sc.textFile(SparkFiles.get("myLocalFile.txt"))
我看到驱动节点将文件上传到/tmp 中的目录,然后我的工作人员得到FileNotFoundException,因为:
- 我没有看到任何打印输出表明工作人员已按应有的方式下载了文件
- 他们尝试使用驱动程序的路径访问文件。所以我假设
SparkFiles.get()在驱动节点上运行,而不是在工作节点上运行(我通过添加println来确认)。
我尝试使用spark-submit --files 选项,我发现完全相同的问题。
那我做错了什么?我想要的只是在集群上sc.textFile()。
【问题讨论】:
-
传递文件的完整路径会有所帮助并查看此链接community.hortonworks.com/questions/38482/…
-
提供完整路径无济于事,我已经浏览了您提供的链接,但没有任何帮助,因为
--files或addFiles都不适合我(因此我的问题)。跨度> -
我也有同样的问题。你找到答案了吗?
标签: apache-spark filenotfoundexception