diff --git a/spark-submission-worker/src/main/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorker.java b/spark-submission-worker/src/main/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorker.java index acccb8cd..1a3ebe2e 100644 --- a/spark-submission-worker/src/main/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorker.java +++ b/spark-submission-worker/src/main/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorker.java @@ -126,7 +126,7 @@ protected SparkAppDriverConf buildDriverConf( effectiveSparkConf.setIfMissing("spark.app.id", appId); return SparkAppDriverConf.create( effectiveSparkConf, - appId, + effectiveSparkConf.getAppId(), primaryResource, applicationSpec.getMainClass(), applicationSpec.getDriverArgs().toArray(String[]::new), diff --git a/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java b/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java index b41f99a8..b678d94f 100644 --- a/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java +++ b/spark-submission-worker/src/test/java/org/apache/spark/k8s/operator/SparkAppSubmissionWorkerTest.java @@ -219,4 +219,20 @@ void generatedSparkAppIdShouldComplyLengthLimit() { String appId = SparkAppSubmissionWorker.generateSparkAppId(mockApp); assertTrue(appId.length() <= DEFAULT_ID_LENGTH_LIMIT); } + + @Test + void checkAppIdWhenUserSpecifiedInSparkConf() { + SparkApplication mockApp = mock(SparkApplication.class); + ApplicationSpec mockSpec = mock(ApplicationSpec.class); + Map appProps = new HashMap<>(); + appProps.put("spark.app.id", "foo"); + ObjectMeta appMeta = new ObjectMetaBuilder().withName("app1").withNamespace("ns1").build(); + when(mockSpec.getSparkConf()).thenReturn(appProps); + when(mockApp.getSpec()).thenReturn(mockSpec); + when(mockApp.getMetadata()).thenReturn(appMeta); + + SparkAppSubmissionWorker submissionWorker = new SparkAppSubmissionWorker(); + SparkAppDriverConf conf = submissionWorker.buildDriverConf(mockApp, Collections.emptyMap()); + assertEquals(conf.appId(), "foo"); + } }