我实现了javaspark应用程序,我用spark submit命令在emr集群上运行它。我想传递我在应用程序中使用的app.properties。app.properties如下所示:
local_fetcher = false
local_storage = false
local_db = true
.
.
.
我希望能够在我的应用程序中获取这些数据。我的问题是:
app.properties应该位于哪里?
如何读取spark应用程序中的it内容?
我应该能够从驱动程序和执行程序中读取它吗?
我试着用 --properties-file
但我知道它将覆盖默认的Spark配置,这不是我想要的。我看到我可以用 --file
标记,但不知道文件应该位于何处,以及如何在应用程序中读取它。
1条答案
按热度按时间1rhkuytd1#
第一个选项:--文件
--文件要放置在每个执行器的工作目录中的文件的逗号分隔列表。executors中这些文件的文件路径可以通过sparkfiles.get(文件名)访问。
您可以使用sparkfiles获得上载文件的确切位置。
第二个选项:getresourceasstream
将app.properties放入作业的jar文件中,并按如下方式加载:
(请注意“app.properties”前面的正斜杠,据我所知这很重要)