在上下文中,我尝试将spark会话配置为使用公平调度。出于这个原因,我有一个文件fairscheduler.xml,在我的 resources
文件夹。此文件已正确打包到我的生成文件夹中的预期位置。
为了进一步证明这一点,我有这样一句话:
val mypath = getClass.getResource("/fairscheduler.xml")
它正在工作并返回我期望的路径: /<some path>/<my jar>/fairscheduler.xml
以下操作将引发filenotfound异常:
sessionBuilder
...
.config("spark.scheduler.mode", "FAIR")
.config("spark.scheduler.allocation.file", mypath.toString) <- THIS LINE
.config("spark.scheduler.pool", "fair_pool")
...
.getOrCreate
为了理智起见,我已经注销了 mypath.toString
.
为什么spark会话生成器不能识别一个看起来有效的资源文件?它是否期望“spark配置”文件存在于特定的地方?还是我完全错过了一些愚蠢的小事?
1条答案
按热度按时间4c8rllxm1#
这不是apachespark的限制,而是javajar文件中处理资源文件的预期行为。如何在javajar文件中获取资源路径的问题提供了更多的细节,以及在temp文件中持久化内容的解决方法。