diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala index 50dccbff77891..699eabee6162b 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala @@ -386,14 +386,14 @@ object KubernetesUtils extends Logging { * This function builds the EnvVar objects for each key-value env. */ @Since("3.4.0") - def buildEnvVars(env: Map[String, String]): Seq[EnvVar] = { - env.filter(env => env._2 != null) - .map { env => + def buildEnvVars(env: Seq[(String, String)]): Seq[EnvVar] = { + env.filterNot(_._2 == null) + .map { case (k, v) => new EnvVarBuilder() - .withName(env._1) - .withValue(env._2) + .withName(k) + .withValue(v) .build() - }.toSeq + } } /** diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicDriverFeatureStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicDriverFeatureStep.scala index d176aa7e20d2c..4b5eece54c8c5 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicDriverFeatureStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicDriverFeatureStep.scala @@ -84,7 +84,7 @@ private[spark] class BasicDriverFeatureStep(conf: KubernetesDriverConf) override def configurePod(pod: SparkPod): SparkPod = { val driverCustomEnvs = KubernetesUtils.buildEnvVars( - Map(ENV_APPLICATION_ID -> conf.appId) ++ conf.environment) + Seq(ENV_APPLICATION_ID -> conf.appId) ++ conf.environment) val driverCpuQuantity = new Quantity(driverCoresRequest) val driverMemoryQuantity = new Quantity(s"${driverMemoryWithOverheadMiB}Mi") val maybeCpuLimitQuantity = driverLimitCores.map { limitCores => diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala index 01ebfaca9ae7c..f945f653b0ad3 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala @@ -138,7 +138,7 @@ private[spark] class BasicExecutorFeatureStep( (s"$ENV_JAVA_OPT_PREFIX$index", opt) }.toMap KubernetesUtils.buildEnvVars( - Map( + Seq( ENV_DRIVER_URL -> driverUrl, ENV_EXECUTOR_CORES -> execResources.cores.get.toString, ENV_EXECUTOR_MEMORY -> executorMemoryString, diff --git a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverCommandFeatureStep.scala b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverCommandFeatureStep.scala index dae6d4ba0667c..455712cec1f69 100644 --- a/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverCommandFeatureStep.scala +++ b/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/DriverCommandFeatureStep.scala @@ -86,7 +86,7 @@ private[spark] class DriverCommandFeatureStep(conf: KubernetesDriverConf) val pythonEnvs = { KubernetesUtils.buildEnvVars( - Map( + Seq( ENV_PYSPARK_PYTHON -> conf.get(PYSPARK_PYTHON) .orElse(environmentVariables.get(ENV_PYSPARK_PYTHON)) .orNull, diff --git a/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesUtilsSuite.scala b/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesUtilsSuite.scala index 4d17ade6aa420..86d6ae570f31d 100644 --- a/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesUtilsSuite.scala +++ b/resource-managers/kubernetes/core/src/test/scala/org/apache/spark/deploy/k8s/KubernetesUtilsSuite.scala @@ -136,7 +136,7 @@ class KubernetesUtilsSuite extends SparkFunSuite with PrivateMethodTester { .withValue(v).build() } val outputEnvVars = - KubernetesUtils.buildEnvVars(input.toMap + ("testKeyForNull" -> null)) + KubernetesUtils.buildEnvVars(input :+ ("testKeyForNull" -> null)) assert(outputEnvVars.toSet == expectedEnvVars.toSet) }