Apache spark JavaSparkContext-jarOfClass或jarOfObject不起作用
嗨,我正试图运行我的火花服务对集群。事实证明,我必须做setJars并将我的应用程序jar放在那里。如果我使用物理路径来做,就像下面这样,它会工作Apache spark JavaSparkContext-jarOfClass或jarOfObject不起作用,apache-spark,Apache Spark,嗨,我正试图运行我的火花服务对集群。事实证明,我必须做setJars并将我的应用程序jar放在那里。如果我使用物理路径来做,就像下面这样,它会工作 conf.setJars(新字符串[]{”/path/to/jar/Sample.jar“}) 但如果我尝试使用JavaSparkContext(或SparkContext)api jarOfClass或jarOfObject,它就不起作用。基本上API找不到jar本身 下面的返回为空 JavaSparkContext.jarOfObject(thi
conf.setJars(新字符串[]{”/path/to/jar/Sample.jar“})代码>
但如果我尝试使用JavaSparkContext(或SparkContext)api jarOfClass或jarOfObject,它就不起作用。基本上API找不到jar本身
下面的返回为空
JavaSparkContext.jarOfObject(this);
JavaSparkContext.jarOfClass(this.getClass())
它是一个优秀的API,如果它工作!还有其他人能利用这个吗?你是如何运行这个应用程序的?如果您是从IDE或编译工具(如sbt)运行它,那么
- jar在运行时没有打包
- 如果您以前打包过一次,那么您的
/path/to/jar/Sample.jar
就存在了,这样硬编码的路径就起作用了,但是运行应用程序的jvm使用的不是.class,它找不到
[我已经包括了Scala的示例。我相信它对Java也会起同样的作用]
如果您执行以下操作,它将起作用:
SparkContext.jarOfObject(this.getClass)
令人惊讶的是,这适用于Scala对象和Scala类