您好我正在尝试针对群集运行我的spark服务。事实证明,我必须做setJars并在那里设置我的应用程序jar。如果我使用物理路径这样做,就像它的工作原理一样
conf.setJars(new String[]{"/path/to/jar/Sample.jar"});
但是如果我尝试使用JavaSparkContext(或SparkContext)api jarOfClass或jarOfObject它不起作用。基本上API无法找到jar本身。
以下返回空白
JavaSparkContext.jarOfObject(this);
JavaSparkContext.jarOfClass(this.getClass())
只有在有效的情况下它才是优秀的API!还有其他人能够利用这个吗?
答案 0 :(得分:1)
[我已经包含了Scala的示例。我相信它将以相同的方式用于Java]
如果您这样做,它将起作用:
SparkContext.jarOfObject(this.getClass)
令人惊讶的是,这适用于Scala Object和Scala Class。
答案 1 :(得分:0)
你是如何运行该应用程序的?如果您是从IDE或编译工具(如sbt)运行它,那么
/path/to/jar/Sample.jar
就存在,从而使硬编码路径正常工作,但这不是运行您的应用程序的jvm正在使用且无法找到的.class。