Apache spark JavaSparkContext-jarOfClass或jarOfObject不起作用

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

嗨,我正试图运行我的火花服务对集群。事实证明,我必须做setJars并将我的应用程序jar放在那里。如果我使用物理路径来做,就像下面这样,它会工作
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类