Как установить переменные среды для pyspark executor в aws emr?

#pyspark #amazon-emr

#пайспарк #amazon-emr #pyspark

Вопрос:

У меня есть кластер AWS EMR, в котором запущены приложения pyspark (или шаги, как их называют в aws emr).

Я хочу установить переменные среды для приложений pyspark и включить это в конфигурацию кластера (после некоторого поиска в Google):

 [
  {
    "Classification": "spark-defaults",
    "Properties": {
      "spark.executorEnv.MY_ENV": "some-value"
    }
  }
]
  

Переменная среды недоступна в процессе pyspark.

Я также пытался:

 [
  {
    "Classification": "yarn-env",
    "Properties": {},
    "Configurations": [
      {
        "Classification": "export",
        "Properties": {
          "MY_ENV": "some-value",
        }
      }
    ]
  }
]

  

А затем вывести переменные среды через:

 print(os.environ)
  

MY_ENV в любом случае не отображается.

Как мне передать переменные среды в мое приложение pyspark?

Комментарии:

1. можете ли вы поделиться тем, как вы передаете этот конфигурационный файл в aws emr create-cluster или шаги

2. @A.B Я делаю это через terraform, где я помещаю эту конфигурацию непосредственно в том виде, в котором я разместил ее в файле json

3. не стесняйтесь проголосовать и принять это как ответ, если это помогло 🙂

Ответ №1:

Можете ли вы попробовать вставить это spark-env .

 [
{
   "Classification": "spark-env",
   "Properties": {},
   "Configurations": [
       {
         "Classification": "export",
         "Properties": {
             "MY_ENV": "some-value",
         }
       }
   ]
 }
]