Чтение / Создание файла конфигурации в Spark / Scala в соответствии с Условиями - PullRequest
0 голосов
/ 30 марта 2020

Я создал один код Spark / scala, в котором в настоящее время я даю жестко закодированное значение в соответствии с моей конфигурацией dev при создании сеанса spark. но я хочу передать это значение из файла конфигурации, чтобы во время выполнения он мог принимать значения из файла на основе Envi (dev, sit, prod). Я создал файл app.Property в папке ресурсов (в eclipse) и написал следующий код .

    app.property
    dev {
    My_App {
    spark.sql.hive.hiveserver2.jdbc.url = "jdbc://(devurl)"
    }
    }
    sit {
    My_App {
    spark.sql.hive.hiveserver2.jdbc.url = "jdbc://(siturl)"
    }
    }
    prod {
    My_App {
    spark.sql.hive.hiveserver2.jdbc.url = "jdbc://(produrl)"
    }
    }
    //scala code(sample_code)
    object 1st_layer {
    def main(args: Array[String]) {
    val sparksession = SparkSession.builder().appName("My_App").config("spark.sql.hive.hiveserver2.jdbc.url","url").enableHiveSupport().getOrCreate();
    var a1=sparksession.sql(" load stmt")
    sparksession.stop()
    }
    }

Подскажите, пожалуйста, как мне это сделать, чтобы он мог читать конфигурацию в зависимости от среды .?

1 Ответ

0 голосов
/ 31 марта 2020

Как правило, это делается путем отправки переменных среды Spark и на основе этого загружает соответствующую конфигурацию из файлов конфигурации. Предполагая, что env является вашей переменной среды, в которой вы передаете значение во время выполнения, вы можете сделать что-то вроде ниже

val stmtQuery = ConfigFactory.load("app.property").get("${env.toLowerCase}.My_App.spark.sql.hive.hiveserver2.jdbc.url")

, основываясь на этом значении, которое вы можете запросить далее.

Вы можете прочитать из здесь как вы можете передать параметры JVM среды для зажигания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...