有一个Apache Spark Scala项目 ( runnerProject ),它使用同一个包 ( sourceProject ) 中的另一个项目。源项目的目的是获取正在运行的 Databricks 作业的名称和版本。
以下方法的问题在于,当从runnerProject调用它时,它返回sourceProject 的详细信息,而不是runnerProject的名称和版本。
sourceProject的方法:
class EnvironmentInfo(appName: String) {
override def getJobDetails(): (String, String) = {
val classPackage = getClass.getPackage
val jobName = classPackage.getImplementationTitle
val jobVersion = classPackage.getImplementationVersion
(jobName, jobVersion)
}
}
runnerProject 使用 sourceProject 作为一个包:
import com.sourceProject.environment.{EnvironmentInfo}
class runnerProject {
def start(
environment: EnvironmentInfo
): Unit = {
// using the returned parameters of the environment
}
如何以getJobDetails()在sourceProject中运行的方式解决此问题,以便也可以从其他项目调用它,而不仅仅是runnerProject。而且,它应该返回有关“调用者”工作的详细信息。
先感谢您!:)