编译Spark会产生以下编译错误:
要解决此问题,我修改Utils.classIsLoadable
方法只返回true
:
def classIsLoadable(clazz: String): Boolean = {
// Try { Class.forName(clazz, false, getContextOrSparkClassLoader) }.isSuccess
true
}
我意识到这不是一个好的修复,但到目前为止,Spark似乎从源代码正确运行。之前是否遇到过此编译错误,是否有修复?现在返回true
是否足够,我不确定修改此返回值可能会产生什么影响?
答案 0 :(得分:3)
我建议使用Maven或SBT从命令行编译Spark,而不是尝试使用IDE的编译器。许多核心Spark开发人员使用IntelliJ编辑Spark的源代码,但仍然使用命令行编译器,主要是因为很难让项目在IDE中正确构建。即使您使用外部编译器,您仍然可以从IntelliJ的语法突出显示,类型检查等中受益。
以下是Spark开发人员邮件列表中的相关讨论:http://apache-spark-developers-list.1001551.n3.nabble.com/IntelliJ-IDEA-cannot-compile-TreeNode-scala-td7090.html
请注意,Spark 用户应该能够使用IntelliJ来编译依赖于Spark的应用程序;此问题仅影响想要构建Spark本身的开发人员。
如果您有兴趣修复构建以使用IntelliJ,我建议您在Spark issue tracker上打开一张票。