Spark Session Builder 找不到资源文件
Posted
技术标签:
【中文标题】Spark Session Builder 找不到资源文件【英文标题】:Spark Session Builder Cannot Find Resource File 【发布时间】:2021-04-16 17:56:10 【问题描述】:对于上下文,我正在尝试将我的 Spark 会话配置为使用公平调度。出于这个原因,我在resources
文件夹的“根”中有一个文件 fairscheduler.xml。此文件已正确打包到我预期位置的构建文件夹中。
为了进一步证明这是有效的,我有这行:
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 会话构建器无法识别在其他方面看起来有效的资源文件?它是否期望“火花配置”文件存在于特定的地方?还是我在这里完全错过了一些愚蠢的小东西?
【问题讨论】:
你检查过这个问题吗? ***.com/questions/941754/… 谢谢!我不知道资源文件不一定在文件系统中。编写一个临时文件似乎可行:) 添加该评论作为答案,我可以投票。 【参考方案1】:这不是 Apache Spark 的限制,而是 Java JAR 文件中资源文件处理方式的预期行为。问题 How to get a path to a resource in a Java JAR file 提供了更多详细信息以及将内容保存在临时文件中的解决方法。
【讨论】:
以上是关于Spark Session Builder 找不到资源文件的主要内容,如果未能解决你的问题,请参考以下文章
spark 源码分析之二 -- SparkContext 的初始化过程
在 Rad Studio XE 6 中找不到 C++ Builder 项目
electron-builder 安装程序:主进程发生 JavaScript 错误,错误:找不到指定的模块
如何解决原因:java.lang.ClassNotFoundException:找不到类“androidx.browser.customtabs.CustomTabsIntent$Builder”